在 iPad 应用程序中,将 UITextView 作为 UINavigationController 的子视图,设置为纵向占据大部分屏幕。当 iPad 旋转到横向时,我希望 UINavigationController 拉伸并调整到屏幕大小,但 textview 保持相同的大小,但它的位置调整为在中心。这是一个视觉效果:
textView 的大小与纵向相同。唯一的区别是它被搬迁到了中心。问题是我不知道该怎么做。
第一个问题是,当我旋转设备时,textView 占据了整个灰色区域,整个视图。textView 是在故事板的界面构建器中设置的,我没有设置或指示我想要这种行为。它只是发生。这不是我想要的。textView 是在界面生成器中设置的,所以我看到的唯一复选标记是“Autoresize Subviews”。我假设这种行为是“自动调整大小”,所以我取消选中它,但仍然没有。我假设是因为它只适用于它的子视图。所以我去 UINavigationController 并取消选中它的导航栏的“自动调整子视图”。依然没有:
唯一有效的方法是我在didRotateFromInterfaceOrientation
方法中重置 textView 的框架。当然这“有效”,但这不是我想要的。因为首先,一旦设备旋转到横向,textView 仍然会拉伸。直到旋转动画结束,textView 才捕捉到我想要的大小和位置。其次,如果应用程序以横向启动,textView 仍然会被拉伸。textView 的框架的重置仅发生在旋转时。
摘要:如何为特定方向的视图设置框架?