XCode 通用应用程序切换 nib/xibs
所以我已经构建了一个应用程序,我负责使其成为通用应用程序。我正在使用 XCode 4.1 并使该应用程序通用。它完成了所有很棒的 plist 并创建了新的主窗口内容。当我在设备/SIM 上运行它时,我会得到一个窗口尺寸较小的 iPad 视图,就像我预期的那样。该应用程序的每个视图都非常图形化,并且使用设置为正确尺寸的图像。我还为不同的可能屏幕准备了不同尺寸的艺术作品。
我的理解是,如果我重新创建每个视图的 iPad 版本,即。 MainMenuViewController 使用 MainMenuViewController.xib,我可以创建一个 MainMenuViewController-iPad.xib,然后告诉它加载它而不是主视图。
我该如何告诉它使用其他视图并且这也适用于 iPhone 4 Retina 显示屏吗?我还需要 MainMenuViewController-Retina.xib 吗?
感谢您的任何帮助?
So I have an application already built and I'm in charge of making it a Universal App. I am using XCode 4.1 and made the app Universal. It did all the great plist and creation of a new mainwindow stuff. When I run it on the device/sim I get an ipad view with a smaller window size like I expected. Each of the app's views are very graphical and uses images set to the correct size. I also have different size art for the different possible screens.
My understanding is that if I re-create an iPad version of each of the views ie. MainMenuViewController uses the MainMenuViewController.xib, I can just create a MainMenuViewController-iPad.xib and then tell it to load that instead of the main view.
How do I go about telling it to use the other view AND does this work for the iPhone 4 Retina display as well? Do I need a MainMenuViewController-Retina.xib as well?
Thanks for any and all help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用条件语句检查 UIDevice 中的 userInterfaceIdiom 值,以确定您使用的是 iPad 还是 iPhone。然后调用相应的 XIB。
对于视网膜显示器,方法是不同的。您将使用完全相同的 XIB,但您只需提供每个图形的高分辨率版本,并将其命名为与其低分辨率版本相同的名称,但在名称末尾添加 @2x。 (myImage.jpg,[电子邮件受保护])。
You can use a conditional statement that checks the userInterfaceIdiom value in UIDevice to see if you are on iPad or iPhone. Then call the appropriate XIB.
For retina displays the approach is different. You will use exactly the same XIB but you need to just provide a high res version of each of your graphics and name it the same as its low res counterpart but add an @2x to the end of the name. (myImage.jpg, [email protected]).