【发布时间】:2012-07-09 22:45:47
【问题描述】:
如何创建特定于设备的 xib?我为 iPhone 制作了一个通用的,但如何使用单独的 xib 文件?
【问题讨论】:
-
为 iPhone 制作一款,为 iPad 制作一款...
标签: iphone ios ipad interface-builder xib
如何创建特定于设备的 xib?我为 iPhone 制作了一个通用的,但如何使用单独的 xib 文件?
【问题讨论】:
标签: iphone ios ipad interface-builder xib
来自Apple Resource Programming Guide:
注意:如果您正在为 iOS 开发通用应用程序,您可以使用特定于设备的命名约定为底层设备自动加载正确的 nib 文件。有关如何命名 nib 文件的详细信息,请参阅“iOS Supports Device-Specific Resources”。
在“iOS 支持设备特定资源”文档中,它是这样说的:
要将资源文件与特定设备关联,您可以在其文件名中添加自定义修饰符字符串。包含此修饰符字符串会生成具有以下格式的文件名:
basename - device.filename_extension
字符串代表资源文件的原始名称。它还代表您从代码访问文件时使用的名称。同样,字符串是用于标识文件类型的标准文件扩展名。该字符串是区分大小写的字符串,可以是以下值之一:
- ipad - 资源只能在 iPad 设备上加载。
- iphone - 资源只能加载到 iPhone 或 iPod touch 设备上。 您可以将设备修饰符应用于任何类型的资源文件。
因此,如果您想要单独的 .xib 文件,您将包括名为“MyView-ipad.xib”的 iPad xib 和名为“MyView-iphone.xib”的 iPhone xib。
一旦你将这些文件包含在你的项目中,当你调用它时:
UIViewController *someViewController = [[someViewController alloc] initWithNibName:@"MyView" bundle:nil];
根据您的应用程序在哪个设备上运行,将加载正确的 xib 文件。
希望这会有所帮助!
【讨论】:
这是创建新项目时的默认设置。举个具体的例子,我会为 iPhone 和 iPad 创建一个空白项目并深入研究。
【讨论】:
如果您已经将项目创建为 iPhone 项目,则需要将其更改为通用应用程序
【讨论】: