当用户向下滚动UITableView
时,我将UITableView
标题放在顶部。标题视图本身是UIButton
,点击后会执行某些操作。
当contentOffset
Y为0
时,该按钮可以很好地响应触摸。然而,当用户向下滚动时,按钮仍然会粘在顶部,但每次触摸都会“穿过”它。
这是我的代码将标题贴在顶部:
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);
感谢。
答案 0 :(得分:0)
如果您要自己移动视图,请不要使用tableHeaderView
。而是直接将其添加为表视图的子视图,并保留对它的引用。然后在scrollViewDidScroll:
布局中根据scrollView.contentOffset.y
布局视图的Y偏移。
您可能需要在viewDidLoad
中触发此布局,以便在任何滚动事件发生之前正确显示。如果在将表格滚动到顶部时视图不应与顶部单元格重叠,请将视图的高度设置为表格contentInset
的{{1}}。