我有两个应用程序,它们都强制用户在横向模式下使用 iPhone,以获得更宽的屏幕,而不是更高的屏幕。
我发现的一件事是,我的第一个视图看起来不错,但所有其他视图都会将其子视图(UIButtons、UIPicker、UIViews)挤压到一侧或剪裁(取决于元素是否设置为移动、调整大小)或保持在视图大小改变时的相同位置)。我所有的视图都是在 IB 中横向设计的。我的底层 UIWindow 以及我能想到的所有内容都已横向布局。甚至我的 plist 文件也设置了 UIInterfaceOrientationLandscapeRight 标志。
现在,如果我与根视图控制器同时加载所有视图,那么我就没有问题了。但如果我稍后加载视图,它们就会被剪切或挤压。
解决这个问题的唯一方法是在我的代码中添加以下行,该行会在新视图中翻转:
[coming.view setFrame:CGRectMake(0, 0, 480, 300)];
有人知道我为什么需要这样做吗?是不是 iPhone 假设加载的视图为 300x480,除非对它们应用变换?
Thanks.
附注如果我不调用 setFrame,视图将如下所示,如上所述:
替代文本 http://files.me.com/mahboud/ljhvun
在第一个视图控制器之后加载的所有视图控制器的屏幕都会类似地被挤压。由于某种原因,第一个视图控制器没有这个问题。