当用户向下滚动 UITableView
时,我将我的 UITableView
header 粘贴到顶部。 header View 本身是一个 UIButton
,它在单击时执行某些操作。
当 contentOffset
Y 为 0
时,按钮对触摸 react 良好。然而,当用户向下滚动时,按钮仍然停留在顶部,但每次触摸都会“穿过”它。
这是我将页眉粘贴到顶部的代码:
var offsetY = scrollView.contentOffset.y;
var headerContentView: UIView = self.tableView.tableHeaderView?.subviews[0] as UIView;
headerContentView.frame = CGRect(x: 0, y: max(0, offsetY), width: headerContentView.bounds.width, height: headerContentView.bounds.height);
谢谢。
最佳答案
如果您要在自己周围移动 View ,则根本不要使用 tableHeaderView
。而是直接将其添加为 TableView 的 subview 并保留对它的引用。然后在scrollViewDidScroll:
中根据scrollView.contentOffset.y
布局 View 的Y偏移量。
您可能需要在 viewDidLoad
中触发此布局,以便它在任何滚动事件发生之前正确显示。如果在表格滚动到顶部时 View 不应与顶部单元格重叠,请将 View 的高度设置为表格的 contentInset
的 top
。
关于ios - 将 TableView header 粘贴到顶部,导致用户向下滚动时 header 不是 "interact",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743474/