Ios 将TableView标题粘贴到顶部,会导致标题不;“互动”;当用户向下滚动时

Ios 将TableView标题粘贴到顶部,会导致标题不;“互动”;当用户向下滚动时,ios,uitableview,swift,uiscrollview,uiscrollviewdelegate,Ios,Uitableview,Swift,Uiscrollview,Uiscrollviewdelegate,当用户向下滚动UITableView时,我将我的UITableView标题粘贴到顶部。标题视图本身是一个ui按钮,单击该按钮可执行某些操作 当contentOffsetY为0时,按钮对触摸反应良好。然而,当用户向下滚动时,按钮仍然会停留在顶部,但每次触摸都会“通过”它 下面是我将标题粘贴到顶部的代码: var offsetY = scrollView.contentOffset.y; var headerContentView: UIView = self.tableView.table

当用户向下滚动
UITableView
时,我将我的
UITableView
标题粘贴到顶部。标题视图本身是一个
ui按钮
,单击该按钮可执行某些操作

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);

谢谢。

如果要移动自己周围的视图,请不要使用
tableHeaderView
。而是直接将其添加为表视图的子视图,并保留对它的引用。然后在
scrollViewDidScroll:
中,根据
scrollView.contentOffset.Y
布局视图的Y偏移量

您可能需要在
viewDidLoad
中触发此布局,以便它在任何滚动事件发生之前正确显示。当表格滚动到顶部时,如果视图不应与顶部单元格重叠,请将视图的高度设置为表格的
contentInset
top