Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 我可以制作一个可以在通用应用程序中通过iPhone和iPad UI共享的XIB/NIB吗?_Ios_Objective C_Ipad_Xib_Nib - Fatal编程技术网

Ios 我可以制作一个可以在通用应用程序中通过iPhone和iPad UI共享的XIB/NIB吗?

Ios 我可以制作一个可以在通用应用程序中通过iPhone和iPad UI共享的XIB/NIB吗?,ios,objective-c,ipad,xib,nib,Ios,Objective C,Ipad,Xib,Nib,XIB是否可以跨平台使用 我正在创建一个通用应用程序。创建新的XIB时,Xcode希望我选择一个设备系列 这一点的UI将在两个版本的应用程序中使用,而设备系列并不是真正相关的(它是200x250像素,可以在两个屏幕上显示) 如果我选择iPad作为设备系列,这是否意味着在iPhone上运行时,应用程序将看不到xib 如果不是的话,有什么我应该注意的地方吗 编辑: 特别是在这个回答中,他们暗示设备系列嵌入了NIB本身,可能使它在“错误”的平台上不可见:我有一个可能的答案,来自资源编程指南(我发誓我在

XIB是否可以跨平台使用

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

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

如果我选择iPad作为设备系列,这是否意味着在iPhone上运行时,应用程序将看不到xib

如果不是的话,有什么我应该注意的地方吗

编辑:
特别是在这个回答中,他们暗示设备系列嵌入了NIB本身,可能使它在“错误”的平台上不可见:

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

“在iPhone或iPod touch设备上,系统加载MyImage~iPhone.png资源文件,而在iPad上,系统加载MyImage~iPad.png资源文件。如果找不到特定于设备的资源版本,系统会返回到原始文件名的资源,在前面的示例中,原始文件名是名为MyImage.png的图像。”


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

我从《资源编程指南》中找到了一个可能的答案(我发誓我在发布问题之前查阅了文档!)

“在iPhone或iPod touch设备上,系统加载MyImage~iPhone.png资源文件,而在iPad上,系统加载MyImage~iPad.png资源文件。如果找不到特定于设备的资源版本,系统会返回到原始文件名的资源,在前面的示例中,原始文件名是名为MyImage.png的图像。”


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

是的。但是,在为手机和iPad铺设单个XIB时,布局可能会很复杂

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

对于外观不正确的布局,您可以创建~iPad版本的XIB。因此,iphone XIB被称为“DeskNoteDetails.XIB”。iPad版本将被命名为DeskNoteDetails~iPad.XIB。现在,您可以为设备创建完全不同的布局。当应用程序需要加载DeskNoteDetailViewController视图时,框架将我将决定它应该加载常规XIB还是~IPAD


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

是的。但是,在为手机和IPAD铺设单个XIB时,布局可能会很复杂

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

对于外观不正确的布局,您可以创建~iPad版本的XIB。因此,iphone XIB被称为“DeskNoteDetails.XIB”。iPad版本将被命名为DeskNoteDetails~iPad.XIB。现在,您可以为设备创建完全不同的布局。当应用程序需要加载DeskNoteDetailViewController视图时,框架将我将决定它应该加载常规XIB还是~IPAD


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

Hello@johan,它在我的应用程序中不起作用。我已经为iphone开发了整个应用程序,我也想为IPAD制作它,我已经创建了名为~IPAD.XIB的XIB,但它对我和您不起作用有任何建议。什么不起作用?你如何启动新的ViewController?@johan,首先谢谢回答我,我的ipad xib正在加载,但子控件隐藏在xcode 6.1Hello@johan的ipad中的xib上,它在我的应用程序中不起作用。我已经为iphone开发了整个应用程序,我也想为ipad制作它,我已经创建了名为~IP的xibAD.xib但它对我不起作用你有什么建议吗?什么不起作用?你如何启动新的ViewController?@johan,首先谢谢回答我,我的ipad xib正在加载,但子控件隐藏在xcode 6.1中ipad的xib上