【问题标题】:ios how can use multiple nibs control by one viewcontrollerios如何通过一个视图控制器使用多个笔尖控制
【发布时间】:2012-12-31 14:30:04
【问题描述】:

我正在构建一个支持 iOS 5.1.X 和 6.X 的通用应用程序。但我有一个问题要问你们。在 iOS 5.1.X 上不支持自动布局,我想有一个解决方案有 3 个笔尖 1)ipad 2)iphone 视网膜而不是视网膜 3)iphone 5。我想使用 3 个笔尖的原因之一是加载它带有图形和动画,但我不确定这将是最好的解决方案。我想知道您对这种方法的意见或对不同解决方案的建议。

【问题讨论】:

    标签: iphone ios ipad uiviewcontroller nib


    【解决方案1】:

    加载三个笔尖不是问题。想象一下,您正在构建一个通用应用程序。现在,如果您尝试在 ipad 和 iphone 上使用相同的 nib 文件,那就大错特错了。你的用户界面都搞砸了。但是对于视网膜和非视网膜,您可以使用 1x 和 2x 图像,以便您可以使用相同的 nib 文件。但如果你真的想在这里使用 3 个 nib 文件,我会说使用 1x 和 2x 图像

    【讨论】:

      【解决方案2】:

      你可以这样做

      先判断设备iphone还是ipad

      int iphone =0;
      
       if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
      {
           iphone = 0;
      }
      else
      {
           iphone = 1;
      }
      
      
      NSString* nibName;
      
      if(iphone == 0)
      {
           nibName = @"SettingsiPadView";
      }
      else
      {
          nibName = @"SettingsiPadView";
      }
      
      Settings* setObj = [[Settings alloc]initWithNibName:nibName bundle:nil];
      [self.navigationController pushViewController:setObj animated:YES];
      

      【讨论】:

        【解决方案3】:

        不要让 AutoLayout 强迫您进入这样的角落。您必须记住:XIB 中的布局从来都不是绝对的。您可以选择在-viewDidLoad(或者,甚至更好,-layoutSubviews)中编写布局代码,并且通过一些创造性的数学运算,您甚至可以将您的应用程序缩减为一个通用的 XIB,并在您的视图控制器中使用适当的布局代码。

        如果您的应用实际上是通用的,则视图控制器的 XIB 永远不应超过 2 个(iPad 版本和类似 Pod 的设备版本不同,足以保证单独的布局或设计)。

        【讨论】:

          猜你喜欢
          • 2014-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-12
          • 2014-09-03
          相关资源
          最近更新 更多