【发布时间】:2011-07-08 16:01:55
【问题描述】:
您可以使用设备修饰符(即~ipad)在 Info.plist 中提供设备特定的键,并指定设备特定的启动图像(iPhone 为 Default.png,iPhone 为 Default~ipad.png例如 iPad)。 Apple Docs 中特别提到了这两件事,但他们并没有说这适用于任何其他类型的文件。
我发现(很偶然)这适用于通过initWithNibName:bundle: 加载.xib 文件。所以比如说我可以有MyView.xib和MyView~ipad.xib,这段代码:
MyViewController *viewController = [[MyViewController alloc]
initWithNibName:@"MyView" bundle:nil];
... 将在 iPad 上完全加载 MyView~ipad.xib,在其他设备上加载 MyView.xib。
所以,1) 这是否记录在某处?我肯定找不到任何 Apple 文档。这肯定比检查 UI_USER_INTERFACE_IDIOM() 并在各处硬编码两个不同的 nib 名称更方便,但如果没有记录,我有点不相信它。
而且,2) 有谁知道这开始工作的 iOS 版本是什么?我只在 4.2 中尝试过,它在那里工作。一般的设备修饰符(即使是上面列出的文档)最低为 4.0。
【问题讨论】:
-
好地方。很确定这是 4.0 以后的版本,当然适用于通用应用程序;虽然也许这适用于 iPad 上的 3.2?回顾 bundle 编程指南,它确实总是使用图像作为资源加载的示例,但再次阅读,可能是所有加载的资源都通过相同的机制退出了 app bundle?
标签: iphone objective-c cocoa-touch ipad ios