【发布时间】:2010-10-06 06:14:27
【问题描述】:
我正在尝试使用 Utility 应用程序模板创建一个始终处于横向模式的 iPhone 应用程序。这是我所做的:
- 使用 Utility Application 模板创建一个新的 iPhone 应用程序项目
- 在 Interface Builder 中,将所有视图旋转 90 度。
- 在 Interface Builder 中,将标签添加到 MainView 的中间。在视图中一直拉伸它,将对齐设置为居中,并设置自动调整大小的弹簧,使其可以水平拉伸。
- 在 Info.plist 中,添加值为“UIInterfaceOrientationLandscapeRight”的键“UIInterfaceOrientation”
- 在控制器类中,将 shouldAutorotateToInterfaceOrientation 方法更改为“return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);”
- 运行应用程序。
当我启动我的应用程序时,它以横向显示,但主视图仅覆盖显示屏的上半部分,并且它被水平拉伸。我在模拟器和实际设备上都得到了相同的结果。我已经在 SDK 的 2.2 和 2.2.1 版本中看到了它。
我已经能够通过在上面添加以下步骤来解决该问题:
- 添加“self.view.autoresizesSubviews = NO;”在“[super viewDidLoad];”之后到 RootViewController 的 viewDidLoad 方法。
如果我这样做,那么它会按预期工作。但这感觉就像一个黑客。为什么需要这样做?
我不认为这是一个转型问题。所有元素都以正确的方向和适当的比例绘制。问题似乎是主视图的边界矩形变得时髦。看起来主视图的高度被削减了一半多一点,宽度增加了大约 50%。
如果我使用基于视图的应用程序模板而不是实用程序执行完全相同的一组步骤,那么一切都会按预期工作。所以我很确定问题是特定于实用程序应用程序如何管理其视图。
有人知道这里发生了什么吗?
【问题讨论】:
-
有点愚蠢的问题,但是 IB 中的 View 大小正确吗?
-
请查看景观常见问题解答以回答您的问题:stackoverflow.com/questions/2953351/…