- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
您可以使用设备修饰符(即 ~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。
查看有关使用高分辨率图像的部分。我知道我们在谈论 xibs 而不是图像,但它确实有效。我最近的 6 个应用程序都使用了这个成语。
关于iphone - iOS:使用设备修饰符加载 xib 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191472/
SQL FMDB 的修饰符在哪里描述?特别是,如何在要插入的字符串中放置引号。比如我想将名称“Mac's Place”插入数据库?谢谢 最佳答案 如果在 SQL 中使用 executeUpdate 和
我读过 article在 MSDN 上。它解释了为什么“in”应该只与自定义只读结构一起使用,否则会有性能损失。但是,我不太明白如何对原始类型使用“in”。由于 C# 中的所有内置值类型都是不可变的,
“__printflike__ 修饰符”到底是什么?这个词是什么意思? 最佳答案 据推测,它会告诉编译器您正在使用的函数接受格式为 [anything, ] format, ... 的参数,其中 fo
我在 VS2010 上使用 ReSharper 插件,我正在生成一个接口(interface)方法。ReSharper 在参数名称上放置一个 @。那是做什么用的? int Count(Func @wh
我在写小偷中用了大量的正则,所以在接下来的版本中要逐步减少正则的应用 在PHP正则表达式中需要转义的字符如下: $^*()+={}[]|/:<>.?'" 注意:perl风
http://msdn.microsoft.com/en-us/library/435f1dw2.aspx public class Base { public string Field; }
根据scala-wartremover静态分析工具我必须将“final”放在我创建的每个案例类前面:错误消息显示“案例类必须是最终的”。 根据scapegoat (Scala 的另一个静态分析工具)相
在 tcsh 中,我可以通过以下方式从路径末尾提取第二个路径元素 cd /some/long/directory/structure/path/ set x=`pwd` echo ${x:h:h:t}
我找到了很多 SwiftUI 教程,其中修饰符 .resizable() 用于图像。它似乎不再适用于带有 Swift 5 的 Xcode 13.3.1。 导入了 SwiftUI。如果您自己键入整个修饰
我已经设置好了音频播放器 除了步进器的当前功能外,我还想为 onIncrement 和 onDecrement 播放单独的声音。 这个项目使用核心数据来持久化。 $estimatorData.qty
来自 linux 内核脚本/mod/modpost.c: static int is_vmlinux(const char *modname) { const char *myname;
我刚刚遇到了一个BNF Grammar for JAVA 。其中,“修饰符”有一个称为“threadsafe”的终结符号。但是,我以前从未见过它,也无法在《Java 语言规范》Java SE 7 版
我创建了一个脚本,它将我组中的所有帖子嵌入到我的网站上。为此,我必须知道所有可能的修饰符“附件”类型。 现在我知道,那个类型可以是: 分享, video_share_youtube。 但我不知道在哪里
在 tcsh 中,我可以通过以下方式从路径末尾提取第二个路径元素 cd /some/long/directory/structure/path/ set x=`pwd` echo ${x:h:h:t}
我找到了很多 SwiftUI 教程,其中修饰符 .resizable() 用于图像。它似乎不再适用于带有 Swift 5 的 Xcode 13.3.1。 导入了 SwiftUI。如果您自己键入整个修饰
我正在编写一个代表一些简单几何形状的 Java 类。 最上面abstract类(它本身是包私有(private))我已经声明了需要从同一包中的子类访问的属性。 如果我将属性声明为 final在 Abs
我已经设置好了音频播放器 除了步进器的当前功能外,我还想为 onIncrement 和 onDecrement 播放单独的声音。 这个项目使用核心数据来持久化。 $estimatorData.qty
明确地说,我是 不是 询问如何使用 ViewModifier 协议(protocol)来创建一个带有 body 函数的结构,然后可以使用它来修改 View 。这个问题有点不同。 我正在尝试创建 Nav
我有一个内部类,用于存储我用于游戏的控件的信息,现在我想在其中存储一个静态 ArrayList,其中包含所有控件的名称。但我收到此错误:“修饰符 static 只允许在常量变量声明中” private
public class This_testing { int x,y; public This_testing(int x,int y){ //Why modifier void
我是一名优秀的程序员,十分优秀!