UITableView 部分在设备旋转后失去交互

Posted

技术标签:

【中文标题】UITableView 部分在设备旋转后失去交互【英文标题】:UITableView portion loses interaction after device rotation 【发布时间】:2011-10-17 10:48:47 【问题描述】:

我有一个带有 UIView 子类的 UIViewController 作为子视图,这里添加了一个 UITableView 作为该 UIView 的子视图,如下所示:

UIViewController
-UIView
--UITableView (plucked from a UITableViewController)

在 iPad 上,如果我以任一方向加载视图控制器,我都可以与表格视图完美交互。但是,如果我将设备旋转到新的方向 - 我有代码可以更改框架以使其适合新的分辨率,但表格的一小部分区域不会响应触摸等等。

例如,我们将纵向转为横向:如果您想象将纵向形状放置在横向屏幕上 - 该区域仍保持响应,但右侧的小条没有响应。

有没有人知道我可能错过了什么?提前致谢。

编辑:我已经成功验证了从 tableview 单元格到顶部 UIViewController 的所有对象的 CGRect 框架。

【问题讨论】:

您是否在线调整 UITableView 的大小而不是父 UIView 的大小? 我已经成功地将相关表格视图的所有帧边界通过 NSLogged 到顶部 UIViewController,并且它们匹配。表格视图最初是从 UIViewController 中提取的,但另一个 VC 已发布 - 表格视图是否仍在寻找它的原始所有者? 嗯...并非完全不可能。你为什么要把它从一个 VC 上撕下来再添加到另一个 VC 上呢?听起来不像是最优雅的解决方案:) 当然你是绝对正确的——我正在为一个通用应用程序的 RSS 阅读器修改一些来自 cocoacontrols 的文件——除了 iPad 上的这个方向问题之外,它工作得很好。 【参考方案1】:

失去交互的区域必须在旋转后落在其父视图的框架之外。

您可以通过设置 tableView.clipSubviews = YES 来检查;

使用这个,将裁剪掉超视图之外的表格视图部分。

【讨论】:

感谢回复,唯一可用的属性是tableView.clipsToBounds,可惜放在所有超级视图中都没有做任何事情。

以上是关于UITableView 部分在设备旋转后失去交互的主要内容,如果未能解决你的问题,请参考以下文章

旋转 UITableView 时更新 UITableViewCells 的问题

UITableView 与导航栏不对齐(单元格在旋转时卡在下面)

UITableView 旋转问题

ios 7 uitableview 所选单元格在 beginupdates 后失去边框

Android开发中EditText的点击Enter键焦点改变处理(获取焦点和失去焦点交互变化)

旋转后 UINavigationController 中的 UITableView 在导航栏下