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
——iPad
和iPhone
。在这种情况下,正确使用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
结尾。
注意:区分大小写不要使用iPad
或iPhone
。
检查每个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,而不是启动图像)
是否可以在 launchsceen.xib 或 launchscreen.storyboard 的 imageview 中为通用应用程序使用启动图像?