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 滚动问题的主要内容,如果未能解决你的问题,请参考以下文章