【发布时间】:2012-09-14 09:25:51
【问题描述】:
我正在开发针对 iOS 6 的项目,该项目利用了故事板和自动布局。在故事板中有很多地方将 UITableView 作为子视图添加到视图控制器视图中。此表格视图使用情节提要中的原型单元格。
我们遇到的问题是,如果视图控制器最初以横向加载,然后设备旋转为纵向,则表格视图开始垂直和水平滚动。表格视图单元格以正确的尺寸绘制,但右侧有额外的空白。
看起来,虽然表格视图的框架和边界在旋转时被更新为正确的大小,但表格视图的内容大小却没有。无论更新轮换如何变化,内容大小都保持不变。
如果使用程序化表格视图单元格,问题不会出现。 我发现了一些花哨的解决方法,1.) 调用 reloadData 或 reloadRowsAtIndexPaths:withRowAnimation: 2.) 手动设置属性 contentSize。
这两个似乎都不理想。
我添加了这个 link to a dead simple sample project 演示了这个问题。所做的唯一更改是故事板和主视图控制器的实现。
旋转前 旋转后
【问题讨论】:
-
我很困惑。在您的示例中,它似乎正在工作。
-
@mkral 它在运行 Xcode 4.5 时对我来说坏了。如果您以横向启动应用程序,然后旋转为纵向,则表格视图将同时垂直和水平滚动。
-
好吧,我很笨。我认为纵向到横向是问题所在。我再也没有回去过。
-
从 nib 加载时也会发生这种情况。但无法在 iOS 7 上重现。
标签: ios uitableview storyboard autolayout contentsize