我有以下问题。我有一个 iPhone 应用程序并想升级到通用当我这样做时,我得到了预期的 MainWindow-iPad.xib。但是窗口的大小被硬编码为 320x480。另外,窗外也看不到风景。我红色,这应该是自动 iPad 大小的,所以我假设我做错了什么。我到底错过了什么?提前致谢
4 回答
是的,UIWindow
对象的尺寸被硬编码为 iPhone 屏幕的尺寸。这也让我感到困惑,直到我意识到有一个调整大小的选项:UIWindow
在 Interface Builder 中选择 .xib 中的对象...在“属性”窗格中,确保选中“启动时全屏”复选框。
正如 St3fan 所说,您可能希望为您的 iPad 构建一个特定的主窗口 .xib。
请参阅我的答案:
我懂了。我通过删除自动创建的 ipad xib 来修复它,然后在界面生成器中打开原始 xib 并从菜单中选择转换为 iPad。然后 ni 使用 -iPad 名称保存它并将其添加到 corredt 目标。
您可能还需要创建一个MainWindow-iphone.xib
and MainWindow-ipad.xib
。
我在 GLES 应用程序中遇到了类似的问题 - 使用 EAGLView,以类似于所有示例的方式,但希望支持 iphone3、iphone4 和 ipad。
在我从 [EAGLView initWithCoder] 创建的上下文中,我强制 eaglLayer 的矩形匹配主屏幕,这适用于 iphone 和 iphone4(即给了我 320x480 或 640x960 gl 表面),但对于 ipad,这给了我 768x1024 表面目前裁剪为 640x960。事实证明,“启动时全屏”选项似乎是在视图(在我的情况下为 EAGLView)initWithCoder 之后应用的。
我的解决方案是在 [EAGLView initWithCoder] 中什么都不做,并且仅在调用 AppDelegate 的 didFinishLaunchingWithOptions 之后在 layoutSubviews 调用中实际初始化我的视图。
HTH,叉子