iOS 通用开发 – 在 Xib 文件和图像名称中使用波浪号 (~) 进行区分

Posted

技术标签:

【中文标题】iOS 通用开发 – 在 Xib 文件和图像名称中使用波浪号 (~) 进行区分【英文标题】:iOS Universal Development – Use of Tilde Sign (~) in Xib File and Image Name for differentiation 【发布时间】:2012-12-06 11:45:16 【问题描述】:

在开发universal apps 时,我们必须为每个device 写一个conditional code——iPadiPhone。在这种情况下,正确使用tilde 会非常有益。

例如,如果要推送新的视图控制器,则必须编写很多行(几乎 10 行)代码:

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)

  MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@”MasterViewController_iphone” bundle:nil];
 [self.navigationController pushViewController:masterViewController animated:YES];
 [masterViewController release];

else

  MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@”MasterViewController_ipad” bundle:nil];
  [self.navigationController pushViewController:masterViewController animated:YES];
  [masterViewController release];

我们如何区分 iphone 和 ipad 的图像?

【问题讨论】:

【参考方案1】:

用于区分 iPhone 和 iPad 的 XIB 文件

神奇的~ 会帮助你。您可以使用它来区分 iPhone 和 iPad 资产/xib 文件。

您的文件应以~iphone.xib~ipad.xib 结尾。

注意:区分大小写不要使用iPadiPhone

检查每个xib 文件是否已连接所有出口并设置了正确的文件所有者。如果缺少某些文件,ios 可以决定不使用它们,而是使用 iPhone 文件。

用于区分 iphone 和 ipad 的图像

特定于平台的修饰符 - 使用修饰符 ~iphone 或 ~ipad 指定针对特定设备尺寸的图像。

官方文档InfoPlistKeyReference

【讨论】:

感谢这个东西...太棒了..你有它的任何官方链接吗??? Itworks like charm .check Specifying High-Resolution Images in iOS link 其中波浪号已用于区分设备(iphone 或 ipad) @Prince 我尝试用我的 xib 名称添加 ~ipad。仍然小视图仅在右下角出现 1x 或 2x。我还需要做些什么吗? 如果出现小视图,我认为您的应用程序不支持 ipad 平台,即它不是通用应用程序。创建新的通用应用并在其中添加所有 viewcontroller 类和 xib。 我可以使用~ 来区分横向和纵向吗?如果我没记错的话,我以前见过这样的,但我不确定。

以上是关于iOS 通用开发 – 在 Xib 文件和图像名称中使用波浪号 (~) 进行区分的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 中为通用应用程序添加新的两个 XIB 文件?

如何为 iOS 应用程序的不同设备设置不同的启动文件(xib,而不是启动图像)

使用xib开发界面

应用程序支持 iOS 6 和 iOS 7

是否可以在 launchsceen.xib 或 launchscreen.storyboard 的 imageview 中为通用应用程序使用启动图像?

如何为 xib 文件的 2 个图像之间的 2 个标签实现约束