1

XIB 可以跨平台使用吗?

EG:我正在创建一个通用应用程序。在创建新的 XIB 时,Xcode 希望我选择一个设备系列。

这部分 UI 将按原样在两个版本的应用程序中使用,并且设备系列并不真正相关(它是 200x250 像素,可以在两个屏幕上显示)。

如果我为设备系列选择 iPad,这是否意味着 xib 在 iPhone 上运行时对应用程序不可见?

如果没有,我应该注意什么问题?

编辑:特别是在这个答案中,他们暗示设备系列嵌入在 NIB 本身中,可能使其在“错误”平台上不可见:https ://stackoverflow.com/a/10459556/1461211

4

2 回答 2

5

是的,他们是。但是,当为手机和 iPad 放置一个 XIB 时,布局可能会比较复杂。

如果您使用的是 iOS6+,请使用自动布局来创建适用于 iPhone 和 iPad 的完全动态布局。

对于看起来不正确的布局,您可以创建一个 ~iPad 版本的 XIB。所以 iphone XIB 被称为 'DeskNoteDetails.xib' iPad 版本将被命名为 DeskNoteDetails~IPAD.xib' 现在你可以为设备设置完全不同的布局。当应用程序需要加载 DeskNoteDetailViewController 视图时,框架将确定它应该加载常规 XIB 还是 ~IPAD。

因此,如果您只有 1 个 XIB,应用程序将始终为两个设备加载该 1 个 XIB。如果您有 ~IPAD xib,应用程序将为设备加载正确的 XIB。

于 2013-05-13T15:48:38.310 回答
0

我有一个可能的答案,来自资源编程指南(我发誓我在发布问题之前查看了文档!)

“在 iPhone 或 iPod touch 设备上,系统加载 MyImage~iphone.png 资源文件,而在 iPad 上,它加载 MyImage~ipad.png 资源文件。如果找不到特定于设备的资源版本,则系统回退到寻找具有原始文件名的资源,在前面的示例中将是一个名为 MyImage.png 的图像。"

因此,看起来,如果文件名中没有具有设备特定扩展名的文件,它将在两个平台上加载相同的版本。

于 2013-05-13T15:44:47.347 回答