拖动滚动 UITableView 本身而不是其内容

Posted

技术标签:

【中文标题】拖动滚动 UITableView 本身而不是其内容【英文标题】:Drag scrolls UITableView itself instead of its contents 【发布时间】:2013-02-20 19:19:33 【问题描述】:

我在一个 iPad 应用程序中有几个表格 UI,每个 UITableView 都嵌入了一个较大的灰色背景 UIView,而后者又嵌入了一个全屏、清晰的 UIView(以检测灰色 UI 之外的点击作为解除它的信号)。

视图控制器拥有顶层 UIView 并将自己设置为嵌入表的数据源和委托协议的委托。

除了最新的 UI 外,所有 UI 都按预期工作:当我在表格上上下拖动时,内容会上下滚动,当滚动超出内容的顶部/底部时会露出空白区域。当我在滚动到表格顶部/底部之外时释放拖动,内容会弹回表格的整个高度。

但是在这个最新的 UI 中,当我向上和向下拖动时,整个表格视图会滚动而不是其内容,从而将灰色背景暴露在表格视图的顶部/底部之外。

这会导致两个问题:我无法到达最初可见的表格单元格之外的任何表格单元格,并且当拖过底部时,表格不会弹回其完整高度。前者明显比后者差,但两者都不好。

据我所知,管理这些 UI 的 .xib 文件和代码对所有人来说都是相同的。 (这是我创建它们时的意图。)我找不到任何区别,当然没有任何区别可以解释这种行为。

任何人都可以提供建议,我应该在哪里寻找是什么让表格视图本身滚动,而不是它的内容?

我可以在 Xcode 4 中发布 .xib 的代码 sn-ps 和屏幕截图,但正如我所说,它们在这些 UI 中似乎都是相同的。

【问题讨论】:

【参考方案1】:

找到问题了。

我在 UITableView 上进行调用以在右侧绘制圆角,同时将左侧角保持为正方形(因此每个表格单元格的 imageView 中的图标不会被切掉角)。

代码来自 InfinixSoft 网站上的一篇博文:http://infinixsoft.com/2012/09/rounding-up-the-corners-of-a-uiview

正是这个调用导致整个表格视图滚动,而不仅仅是其内容。删除此调用解决了问题。

我希望这个答案可以帮助其他开发者。

【讨论】:

答案中的链接已失效 - "404 Not Found".

以上是关于拖动滚动 UITableView 本身而不是其内容的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 仅在向上滚动时更新,而不是向下滚动

uitableview 自定义单元格在向下滚动 uitableview 时丢失其内容

在某些单元格上禁用UITableView滚动

iOS 7:在 UITableView / delaysContentTouches 中拖动似乎不起作用

从jQuery可拖动的句柄中排除项目

iOS 7 - 如何拖动按钮或 UIView 的快照而不是按钮本身