近几日完成了项目的适配工作,只能说是个体力活啊.
大部分的 app 也基本完成了适配工作,本帖就不再介绍如何适配了,仅记录些注意事项.
引导图系列或其他地方使用的动画效果图可能需要增加一套了;
商品/活动/其他内容性图片,由于刘海的存在可能需要考虑优化设计了(如果影响其内容展示或效果);
无网络或其他的全局提示栏适配,正在寻找更好的优化方案;
跟顶部有关的位移动画,提及此处纯属因为恶心的计算;
由于挨插屏幕长的可怕,导致很多 UI 的布局已经不美观甚至变形;
流的获取如果与采集的 view 有关系也需要确认一下是否精确;
各种自定义弹窗确认在安全区域;
所有 web 页面确认适配;
输入框位置及动画;
悬浮标的位置;
修改约束后的相关联动画效果;
多功能 view 的各种状态;
第三方的适配状态;
最不常用的功能或节目,不要遗漏啊.
下面提供几个本人使用的宏
// 判断是否是 iPhone X
#define iPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
// 状态栏高度 (如果隐藏状态栏将获取不到高度 此处写死)
#define kStatusBarHeight (iPhoneX ? 44.f : 20.f)
// 导航高度
#define kNavigationBarHeight (44.f)
// 顶部高度
#define kHeaderHeight (kStatusBarHeight + kNavigationBarHeight)
// tabbar 以下高度 (适配时可直接使用此宏 例: x + kTabBarBottomHeight)
#define kTabBarBottomHeight (iPhoneX ? 34.f : 0.f)
// tabbar 高度
#define kTabBarHeight (49.f + kTabBarBottomHeight)