关于iOS机型适配,相信大家都有自己的方法,这也是考验耐心的一个事情,毕竟界面美观也影响着用户体验,前段时间接触的项目和之前用过的方法做一下总结。
1、先说一下Apple的尺寸吧
se/5s {320, 568}
6s {375, 667}
iphonX {375, 812}
2、apple设备状态栏和tabbar高度
iPhone X 全屏状态栏statuBar高度为44,tabBar高度为83,底部状态增加了34.
iPhone X以下机型状态栏statuBar高度为20,tabBar高度为49
3、下面就开始适配了,其实也是很简单,通过宏定义去适配
通过动态获取设备状态栏的高度加入计算
//iPhone X适配
#define KStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height //获取状态栏的高度
#define KNavBarHeight 44.0 //导航栏的高度
#define KTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height > 20?83:49) //根据状态栏的高度判断tabBar的高度
#define KtopHeitht (KStatusBarHeight + KNavBarHeight) //顶部状态栏加导航栏高度
#define KTabSpace ([[UIApplication sharedApplication] statusBarFrame].size.height > 20?34:0) //底部距安全区距离
4、UI界面的frame适配
// 当前设备大小
#define iPhoneWidth [UIScreen mainScreen].bounds.size.width
#define iPhoneHeight [UIScreen mainScreen].bounds.size.height
//自适应大小;这里使用的基于iphone6 的参考适配,可以修改为se/5s {320, 568}/ 6s {375, 667}/ iphonX {375, 812}
#define kWidth(width) iPhoneWidth * width / 375.
#define kHeight(height) iPhoneHeight * height / 667.
#define kLevelSpace(space) iPhoneWidth * space / 375. //水平方向距离间距
#define kVertiSpace(space) iPhoneHeight * space / 667. //垂直方向距离间距
5、字体适配
#define font(R) (R)*(kScreenWidth)/375.0 //这里是iPhone 6屏幕字体
#define sysFont(f) [UIFont fontWithName:@"STHeitiSC-Light" size:autoScaleW(f)]
先更新这么多吧,有不对或更好的方法欢迎指教,以后再更新吧.
----一点点进步