【问题标题】:Xib for iPhone and iPad适用于 iPhone 和 iPad 的 Xib
【发布时间】:2012-11-09 21:05:20
【问题描述】:

我有一个适用于 iPhone 的 Xib,我需要一个适用于 iPad 的类似视图,只有 iPad 大小。

这样做的最佳方法是什么?您可以将两个视图放在同一个 Xib 中并以某种方式指定显示哪个视图吗?

或者我需要制作 2 个 Xib 文件和 2 个类吗?

【问题讨论】:

  • 一般来说你可以在 iPad 项目中使用 iPhone 的 xib。方法 initwithNib:@"YOUR XIB" 被赋予目标 xib 名称
  • 如果它们是同一个视图,我建议让它们动态地改变它们的帧大小。

标签: ios xcode xib nib


【解决方案1】:

我最终使用了 1 个班级。我将两个 XIB 文件的文件所有者设置为同一个类。

我只是用了XIB文件的名字

所以我有 2 个 xibFiles,iPadXib.xib 和 iPhoneXib.xib

NSString *nibFileName = (iPadVersion) ? @"iPadXib" : @"iPhoneXib";

ViewControllerName *vc = [[ViewControllerName alloc] initWithNibName:nibFileName bundle:nil];

【讨论】:

  • 如果您将 XIB 文件命名为 MyThing~ipad.xib 和 MyThing~iphone.xib,那么您可以调用 [[ViewControllerName alloc] initWithNibName:@"MyThing" 并自动加载正确的 XIB。
【解决方案2】:

或者我需要制作 2 个 Xib 文件和 2 个类吗?

实际上,使用三个类和 2 个 xib。像这样:

  1. 我的班级
  2. MyClass_iPhone:MyClass
  3. MyClass_iPad:MyClass

还有两个xib。它为您提供了更多的灵活性。保留 MyClass 上的通用逻辑,并将其他两个子类用于 iPhone 和 iPad 版本。

【讨论】:

    【解决方案3】:

    如果你想要 iPhone 和 ipad 创建通用应用程序。 只创建一个XIB,所有控件只创建一次,不需要单独做。 在编码中绘制框架。 即,为 iphone 和 ipad 创建单独的框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多