gpt4 book ai didi

iphone - iOS:使用设备修饰符加载 xib 文件?

转载 作者:IT老高 更新时间:2023-10-28 11:35:38 25 4
gpt4 key购买 nike

您可以使用设备修饰符(即 ~ipad)在 Info.plist 中提供特定于设备的键,并指定特定于设备的启动图像(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。

最佳答案

我遇到了同样的问题。起初答案没有意义,但好消息是它很容易做到! :)

只需将您的 iPad xib 命名为不带任何修饰符的名称,并将您的 iPhone xib 命名为 ~iphone 修饰符,它就会正确选择它们。

因此,使用 MyViewController,您将拥有适用于 iPad 的 MyViewController.xib 和适用于 iPhone 的 MyViewController~iphone.xib。然后你可以用简单的 alloc/init 来初始化你的 View Controller 。

[[MyViewController alloc] init] 它会抓取正确的 xib。

所以,当我在 XCode 中创建一个新的 View Controller 时,我总是选择为 ipad 格式化它的框,因为它将创建的 xib 将被命名为 MyViewController.xib 并且您希望那个是 iPad 大小的 xib。然后我创建第二个 xib,为 iPhone 格式化并用 ~iphone 修饰符命名。

文档有时有点矛盾,但本页讨论了带有标识符的资源将如何默认为 iPad。

ImageSoundResources

查看有关使用高分辨率图像的部分。我知道我们在谈论 xibs 而不是图像,但它确实有效。我最近的 6 个应用程序都使用了这个成语。

关于iphone - iOS:使用设备修饰符加载 xib 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com