屏幕适配、系统适配基础介绍

开始接触屏幕适配,写得比较粗糙,记录学习过程。
在任务过程中,功能完成,UI细节调整好,API完成对接之后,发现任务中有 “多屏幕(机型)适配”和“多系统适配”需求。
多屏幕适配
iPhone 5s 、SE 4寸
iPhone 6 、6S、7 4.7寸
iPhone 6 Plus 、6S Plus、7 Plus 5.5寸

多系统适配
iOS 8.0 以上

多屏幕适配
设置宏文件
1.获取物理屏幕尺寸,判断设备类型
#define IPhone4_4s SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 480.0f && SCALE == 1
#define iPhone5_5s SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 568.0f && SCALE == 2
#define iPhone5SE SCREEN_WIDTH == 320.0f && SCREEN_HEIGHT == 568.0f && SCALE == 2
#define iPhone6_6s_7 SCREEN_WIDTH == 375.0f && SCREEN_HEIGHT == 667.0f && SCALE == 2
#define iPhone6Plus_6sPlus_7Plus SCREEN_WIDTH == 414.0f && SCREEN_HEIGHT == 736.0f && SCALE == 3

#define kScreenHeightiPhone4_4s 480.0f
#define kScreenHeightiPhone5_5s 568.0f
#define kScreenHeightiPhone6_6s 667.0f
#define kScreenHeightiPhone6Plus_6sPlus 736.0f
#define kScreenHeightiPhone7 667.0f
#define kScreenHeightiPhone7Plus 736.0f

#define kScreenWidthiPhone4_4s 320.0f
#define kScreenWidthiPhone5_5s 320.0f
#define kScreenWidthiPhone6_6s 375.0f
#define kScreenWidthiPhone6Plus_6sPlus 414.0f
#define kScreenWidthiPhone7 375.0f
#define kScreenWidthiPhone7Plus 414.0f
#define GETOFFSET(O) [ScreenFitUtil fixOffset:O]

2.创建ScreenFitUtil文件,声明实现方法:[ScreenFitUtil fixOffset:O]
文字大小,约束设置的数值 都通过 宏指令 进行调整
例如:CGFloat height = GETOFFSET(20);
+ (CGFloat)fixOffset:(CGFloat)offset {
return [ScreenFitUtil getLength:offset];
}
+ (CGFloat)getLength:(CGFloat)length {
if (IPhone4_4s) {
return length * 0.85;
} else if (iPhone5SE) {
return length * 0.85;
} else if (iPhone5_5s) {
return length * 0.85;
} else if (iPhone6_6s_7) {
return length;
} else if (iPhone6Plus_6sPlus_7Plus) {
return length * 1.1;
}
return length;
}
3.CGFloat height = GETOFFSET(20);
返回得到的值的大小,就根据屏幕尺寸进行调整。
如果 为iPhone 4_4s 值 = 20 * 0.85 = 17
如果 为iPhone 5_SE 值 = 20 * 0.85 = 17
如果 为iPhone 6_6s_7 值 = 20 * 1 = 20
如果 为iPhone6Plus_6sPlus_7Plus 值 = 20 *1.1 =22

注意事项:并不是所有的值都要调整大小,需要根据具体情况分析。


多系统适配
第一步:1.修改 iOS Deployment Target 改为最低所需适配系统版本号 ex: iOS Deployment Target 8.0
第二步:2.添加所需模拟器。
需求
完成8.x以上的系统适配

点击 模拟器列表 跟换所需 调试的模拟器


如果没有所需的模拟器 :例如没有8.x的系统
点击 Add Additional Simulators 添加所需的模拟器系统,如果还没有所需的系统,点击 Download more simulator.... 下载更多的系统模拟器

添加完成后,运行调试代码即可。

本人在添加过程中,遇到一个问题,
发现列表中明明添加了 8.x的 系统模拟器,但是选择的时候 只有9.x 和10.x的模拟器,无法选中8.x的模拟器。
解决办法:
1. xcrun simctl delete unavailable 命令行作用:移除xcode无用的模拟器, 清除 不用的 模拟器缓存目录
2.选择target,在development Info 中 ,修改Development Target 改为8.0

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值