ios - 将 TableView header 粘贴到顶部,导致用户向下滚动时 header 不是 "interact"

标签 ios uitableview swift uiscrollview uiscrollviewdelegate

当用户向下滚动 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 的高度设置为表格的 contentInsettop

关于ios - 将 TableView header 粘贴到顶部,导致用户向下滚动时 header 不是 "interact",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743474/

相关文章:

ios - AVSpeechSynthesizer 特殊字符

iphone - UINavigationController 过渡动画触发得太快

IOS Swift TableView 对索引路径处的行进行编辑操作

ios - 当键盘出现时滚动到底部导致崩溃

objective-c - 同一项目中的 Objective-C 和 Swift - -[__NSCFNumber 长度] : unrecognized selector sent to instance

ios - RAC命令困惑

ios - 多个按钮,每个按钮连接到多个 ViewController

iphone - 尝试在 ios 中使用 TableView ,出现错误

ios - 如何为 UIButtonTypeCustom 实现 tintcolor 行为

Swift - UIView 原点设置为 140 时返回 0