【问题标题】:iOS Universal Development – Use of Tilde Sign (~) in Xib File and Image Name for differentiationiOS 通用开发 – 在 Xib 文件和图像名称中使用波浪号 (~) 进行区分
【发布时间】: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 的图像?

【问题讨论】:

    标签: iphone objective-c ios xcode


    【解决方案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。
    • 我可以使用~ 来区分横向和纵向吗?如果我没记错的话,我以前见过这样的,但我不确定。
    猜你喜欢
    • 2014-10-27
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 2020-06-02
    • 2014-12-04
    • 2020-10-10
    • 1970-01-01
    • 2015-05-06
    相关资源
    最近更新 更多