在xcode 4.2中,如果你为iPhone和iPad设置了一个新项目,并选择创建一个新的iOS“Master-Detail Application”,Xcode将为你设置很多模板代码。应用程序的iOS“版本”有一个不同的简单故事板。我希望我的应用程序的详细视图也是一个由表控制器控制的表视图,我希望此表视图的单元格能够自动调整大小并改变方向。问题是虽然这适用于iPhone版本的应用程序,但它不适用于iPad版本。
前提条件:
如果您编辑iPhone故事板上的详细信息视图以使其包含表视图控制器并定义表视图以包含单个原型单元格 - 将原型单元格设置为自定义类型并向其添加一些子视图使用自动调整大小属性定义这些子视图(例如,两个按钮 - 一个固定到视图的左侧,另一个固定到视图的右边距)。对iPad故事板的详细视图执行相同操作(当然,这包含在更复杂的拆分视图控制器中)。
仔细检查所有视图控制器是否已从所选NIB调整大小(默认情况下都是这样),并且所有视图都选择了自动调整大小视图。
预期:
当为iPhone或iPad编译应用程序时,在这两种情况下,表格单元格及其子视图应在方向更改时调整大小。
实际结果:
在应用程序的iPad版本上,表格单元格不会重新布局以匹配UITable视图的更改大小。 iPhone版iPhone上的表格单元格按预期运行。
很明显,嵌套视图的子视图布局链被破坏,以便在发生方向更改时不会发生重新布局子视图或一直调用到表视图单元格。任何人都知道这是否可以在Interface Builder中修复,或者不知道重新建立链需要什么代码?我知道如何使用willRotateToInterfaceOrientation修复此问题:duration :,在我自己的UITableViewController自定义子类中,但我不确定这样做是否干净,我不希望部分自动化方向更改与代码片段提供变通方法对于我认为应该可以实现自动化的东西。