MonoTouch 应用程序 - 旋转的布局问题
Posted
技术标签:
【中文标题】MonoTouch 应用程序 - 旋转的布局问题【英文标题】:MonoTouch app - Layout Problems with Rotation 【发布时间】:2010-08-27 19:06:40 【问题描述】:我遇到了一个问题,在您旋转设备之前,我的某些视图在应用加载时看起来不正确,而有些视图在加载后看起来正确但旋转后不正确。
我有一个加载视图 A 的窗口,按下按钮后,从窗口中分离视图 A (RemoveFromSuperView) 并加载视图 B 并将其添加到窗口中。
视图 A - 在状态栏高度的底部有空白区域,在设备旋转时固定。
视图 B - 加载时看起来正确,但在设备旋转后部分底部被切掉。
什么会导致这种奇怪的行为?
如果我通过 File->Simulate Interface 从 Interface Builder 查看我的 XIB 文件,它们可以正常工作。但它们不适用于我的应用程序,实际设备上也会发生同样的事情。
PS - 我认为我没有任何自定义代码会导致这种情况,我只是在 IB 中创建了视图 A 和 B 并将它们连接到子类控制器,因此我可以覆盖 ShouldAutorotateToInterfaceOrientation。
【问题讨论】:
【参考方案1】:这是因为我的视图控制器是从代码中创建的。
我切换到从 XIB 文件创建的控制器,显然它们已正确调整大小并在执行此操作时考虑了状态栏。
我还必须验证是否在 Interface Builder 中检查了“Resize View From NIB”,并且存在相应的子 NIB 名称。如果你的控制器没有放在第二个 XIB 文件中,你可以跳过这一步。
【讨论】:
我发现发生这种情况的另一种情况是 TabBarController 的视图是另一个控制器的子视图时。为了解决这个问题,我将父控制器的 View 属性设置为 TabBarController 的 View。这对于我试图做的事情来说似乎很糟糕,但我找不到其他方法来解决它。以上是关于MonoTouch 应用程序 - 旋转的布局问题的主要内容,如果未能解决你的问题,请参考以下文章
Monotouch PInvoke System.EntryPointNotFoundException
从 UITextField 单击事件 MonoTouch 在 UIDatePicker 中选择日期