iOS 适配各机型界面

关于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)]





先更新这么多吧,有不对或更好的方法欢迎指教,以后再更新吧.
----一点点进步

你可能感兴趣的:(iOS 适配各机型界面)