一个View根据设备尺寸的不同加载不同的XIB文件
作者:互联网
最近在做一个项目要求在iPhone和iPad上都能很好的显示,但是实际适配的时候不管是使用storyboard还是纯代码写都比较麻烦;于是就在想可不可以让一个view文件对应两个或多个XIB文件(view_iphone.xib 和 view_ipad.xib);
1、首先工程中要支持iPad和iPhone:设置targets->Deployment Info ->Devices 选择Universal
2、正常创建view文件和一个对应的view.xib文件(比如先选一个iPhone的xib),在xib文件上拖拽好需要的控件并添加好约束,把需要的控件关联到view.m里(这一步按照正常的流程把所有的工作都做完);
此时在iPhone上运行效果是比较好的,但是在iPad上显示就很不协调了;
3、选中步骤2创建的.xib文件,File —> Duplicate… —> Save As: view_iPad.xib,这样你创建一个名称为view_iPad.xib 且和view.xib一样的文件;
4、修改view_iPad.xib对应的view as:iPad;并调整控件的约束以适应当前的设备;
5、选中view_iPad.xib,右键Open As —> Source Code 打开对应的XML文件:把<document type=“com.apple.InterfaceBuilder3.CocoaTouch.XIB” 改成 <document type=“com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB”;
6、在view.m中加载xib文件时:选择性的加载对应的文件
NSArray *nibAry = [[NSBundle mainBundle]loadNibNamed:[[UIDevice currentDevice].model isEqualToString:@"iPad"]?@"OBMissionTypeInfoView_ipad":@"OBMissionTypeInfoView" owner:self options:nil];
OBMissionTypeInfoView *createMissionTypeView = [nibAry objectAtIndex:0];
标签:iPad,文件,XIB,控件,xib,iPhone,View,view,加载 来源: https://blog.csdn.net/xuanweihong_ios/article/details/98483018