iPhone和iPad的Xib

4

我有一个用于 iPhone 的 Xib 文件,现在需要一个只针对 iPad 尺寸的类似视图。

如何最好地实现这个需求?能否将两个视图放在同一个 Xib 文件中,并指定显示哪个?

还是说需要创建两个 Xib 文件和两个类来实现?


https://dev59.com/KG435IYBdhLWcg3wjw3S - iArezki
一般来说,在 iPad 项目中可以使用 Xib 设计 iPhone 的界面。方法 initWithNib:@"YOUR XIB" 中给定了目标的 Xib 名称。 - Vinh
如果它们是相同的视图,我建议使它们动态地适应其框架大小。 - mkral
3个回答

4
我最终只用了一个类,将两个XIB文件的文件所有者设置为同一个类。 我只是使用了XIB文件的名称。 所以我有2个xib文件,iPadXib.xib和iPhoneXib.xib。
NSString *nibFileName = (iPadVersion) ? @"iPadXib" : @"iPhoneXib";

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

3
如果你将XIB文件命名为MyThingipad.xib和MyThingiphone.xib,那么你可以调用[[ViewControllerName alloc] initWithNibName:@"MyThing"来自动加载正确的XIB文件。请注意,不要改变原文的意思,并尽量让翻译更加通俗易懂。 - Paul

2
我需要使用三个类和两个xib文件。如下所示:
1. MyClass 2. MyClass_iPhone:MyClass 3. MyClass_iPad:MyClass
另外有两个xib文件。这样做可以给你更多的灵活性。将公共逻辑保留在MyClass中,为iPhone和iPad版本分别创建其它两个子类。

1

如果您想要同时支持 iPhone 和 iPad,请创建通用应用。 只需创建一个 XIB 文件并一次性创建所有控件,无需单独进行操作。 通过编码绘制框架。 例如,为 iPhone 和 iPad 分别创建不同的框架。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接