iOS tableview 滚动问题

Posted

技术标签:

【中文标题】iOS tableview 滚动问题【英文标题】:iOS tableview scrolling problems 【发布时间】:2017-04-23 14:56:28 【问题描述】:

我在视图控制器中有两个视图。 tableview 嵌入在底部视图中,并且 segue 会立即触发到该 tableview。所以我在屏幕顶部显示一个静态视图,在底部显示一个表格视图。问题是在表格视图中滚动没有响应。它只记录下半部分的抽头。基本上tableview中间有一条不可见的线,应用程序没有在它上面注册任何东西(它只注册那些点击我提到的第一个视图的点击,这比tableview高得多)所以用户只能滚动如果他只触及 tableview 的下半部分。 Tableview 正常运行并显示有效数据

有什么想法吗?

【问题讨论】:

【参考方案1】:

您是否检查了 View Hierarchy Debugger (Debug->View Debugging->Capture View Hierarchy)?要寻找的典型问题是:

    tableView 上方的透明视图吞噬了触摸事件。要解决此问题,请执行以下操作之一:

    删除有问题的透明视图 通过将有问题的透明视图移到 tableView 后面来修复视图层次结构 修复布局以确保透明视图的底部锚点不低于 tableView 的顶部锚点

    表格视图在其父视图之上延伸而没有被剪裁。触摸事件在视图层次结构的根被接收并转发到适当的子视图。在这种情况下,底部视图边界之外的触摸事件将不会发送到底部视图。这就是为什么底部视图只能转发源自其边界的触摸事件。要解决此问题,请执行以下操作之一: 在容器视图上启用clipsToBounds(当然,这只会隐藏表格中非交互的部分) 修复布局以确保 tableView 完全在其父视图的范围内

【讨论】:

以上是关于iOS tableview 滚动问题的主要内容,如果未能解决你的问题,请参考以下文章

滚动时tableview数据重复

滚动视图内的不可滚动的tableview

UITableViewCell 中的 UIPickerView - 如何选择值而不是滚动 TableView?

iOS仿支付宝首页的刷新布局效果

Swift:在滚动时更改表格视图高度

Tableview单元格内UItextView的奇怪行为