一个View根据设备尺寸的不同加载不同的XIB文件

本文介绍了一种在iOS项目中实现iPhone和iPad视图适配的方法,通过创建和利用特定于设备的XIB文件,确保应用在不同设备上均能良好显示。从工程设置开始,详细说明了如何复制、修改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];
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值