将 TableView 标题粘贴到顶部,导致当用户向下滚动时标题不“交互”
Posted
技术标签:
【中文标题】将 TableView 标题粘贴到顶部,导致当用户向下滚动时标题不“交互”【英文标题】:Sticking a TableView Header to the top, causes the header to not "interact" when user scrolls down 【发布时间】:2015-02-26 13:15:08 【问题描述】:当用户向下滚动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);
谢谢。
【问题讨论】:
【参考方案1】:如果您要在自己周围移动视图,请不要使用tableHeaderView
。而是直接将其添加为表格视图的子视图并保留对它的引用。然后在scrollViewDidScroll:
中根据scrollView.contentOffset.y
布局视图的Y 偏移量。
您可能需要在viewDidLoad
中触发此布局,以便它在任何滚动事件发生之前正确显示。如果表格滚动到顶部时视图不应与顶部单元格重叠,请将视图的高度设置为表格的contentInset
的top
。
【讨论】:
以上是关于将 TableView 标题粘贴到顶部,导致当用户向下滚动时标题不“交互”的主要内容,如果未能解决你的问题,请参考以下文章