2013-06-03 29 views
0

在一个iPad应用程序中有一个UITextView作为UINavigationController的子视图,它被设置为纵向占据大部分屏幕。当iPad旋转到横向时,我想让UINavigationController伸展并调整到屏幕大小,但textview保持相同的大小,但将其位置调整为居中。这里有一个视觉:您可以在iOS上为特定方向指定视图的框架/位置?

enter image description here

TextView的是相同的大小,因为它是在肖像。唯一的区别是它被重新安置到中心。问题是我不知道如何做到这一点。

第一个问题是,当我旋转设备时,textView占据了整个灰色区域,整个视图。 textView是在界面构建器中的故事板中设置的,我没有设置或指示我想要这种行为。它恰好发生。这不是我想要的。 textView是在界面构建器中设置的,所以我看到的唯一复选标记是“Autoresize Subviews”。我假设这种行为是“自动调整”的,所以我取消了这一点,而且什么也没有。我假设,因为它只适用于它的子视图。所以我去UINavigationController并取消它的导航栏的“Autoresize子视图”。还是什么都没有:

enter image description here

唯一令这类作品的是,如果我在didRotateFromInterfaceOrientation方法重置的TextView的框架。当然这个“有效”,但这不是我想要的。因为首先,一旦设备旋转到横向,textView仍然伸展。直到旋转动画结束,textView才会捕捉到我想要的大小和位置。其次,如果应用程序在横向上启动,那么textView仍然会伸展。 textView框架的重置仅在旋转时发生。

摘要:如何设置特定方向的视图框架?

回答

0

您应该在IB中设置布局约束条件,使其达到您想要的效果。使文本视图以您想要的任何大小为纵向。给它中心x,中心y,顶层空间和超宽度约束。如果你有所有这些约束(不再有),当你旋转时它应该保持相同的宽度。

+0

谢谢,约束已经解决了尺寸问题。对它们知之甚少,我从未考虑过使用它们。还有一个问题:我不知道如何设置中心x和y。据我所知,您不能添加任何中心约束。 – Joe

+0

@ user2157318,如果你选择你的文本视图,然后进入编辑器 - >对齐,它可以选择“容器中的水平中心”和“容器中的垂直中心”。 – rdelmar

+0

明白了,谢谢rdelmar。 – Joe

相关问题