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 与导航栏不对齐(单元格在旋转时卡在下面)
ios 7 uitableview 所选单元格在 beginupdates 后失去边框