- 重磅!!! 在继今年年初WWDC之后,苹果官方文档的中文适配逐步加快!现在已经出了官方版适配iPhoneX的中文文档!。苹果是越来越重视中国的开发者了!
- 2017.09.29更新:修正关于安全区域的描述!更加完善!推荐大家看WWDC的视频
- 2018.02.04更新:公司真正适配iPhoneX之后的一些纠正,推荐两篇文章。
2018.02.04更新部分:公司真正适配iPhoneX之后的一些纠正,找到了这篇文章,既然有现成的我就不写了。
2017.09.29更新部分:
首先关于适配iPhoneX,适配安全区讲,因为iPhoneX的刘海和底部Home Indicator上滑指示条的存在,所以弄出来一个安全区的概念。这个区域,就是保证我们的内容的在任何时候,尤其是横屏状态下,内容不被遮盖!而且这个安全区是可以自己设置更改的,不过修改了安全区到底是否影响审核,还是需要看苹果时候的审核规则,目前来看,还是老老实实的把内容写到安全区域内为上策~
横,竖屏幕下的安全区域 iPhone X 的 Home Indicator 区域(转)再说一下,依照我的理解,这个安全区域,白话来讲,其实就是系统给你的一个指导的显示区域的值
!参考这个值适配会非常简单。当然,你也可以无视这个方法,手动自己适配,这个当然是绝对不推荐的了。
我觉得安全区域目前最终的两个属性和一个方法是:
- safeAreaInsets和safeAreaLayoutGuide
- -(void)viewSafeAreaInsetsDidChange
关于这两个属性和一个方法,网上已经有很多说明,下边是我适配过程中的几个宏,还在适配,还在完善:
// UIScreen width.
#define LL_ScreenWidth [UIScreen mainScreen].bounds.size.width
// UIScreen height.
#define LL_ScreenHeight [UIScreen mainScreen].bounds.size.height
// iPhone X
#define LL_iPhoneX (LL_ScreenWidth == 375.f && LL_ScreenHeight == 812.f ? YES : NO)
// Status bar height.
#define LL_StatusBarHeight (LL_iPhoneX ? 44.f : 20.f)
// Navigation bar height.
#define LL_NavigationBarHeight 44.f
// Tabbar height.
#define LL_TabbarHeight (LL_iPhoneX ? (49.f+34.f) : 49.f)
// Tabbar safe bottom margin.
#define LL_TabbarSafeBottomMargin (LL_iPhoneX ? 34.f : 0.f)
// Status bar & navigation bar height.
#define LL_StatusBarAndNavigationBarHeight (LL_iPhoneX ? 88.f : 64.f)
#define LL_ViewSafeAreInsets(view) ({UIEdgeInsets insets; if(@available(iOS 11.0, *)) {insets = view.safeAreaInsets;} else {insets = UIEdgeInsetsZero;} insets;})
因为网上出的了很多资料,所以我只负责收集一下,觉得有价值的几篇文章,看完相信大家觉得适配iPhone X其实很简单(如果前期基类写的好的话,只需要在基类和在个别需要特别显示效果的页面修改就可以了! 凸显基类此时的重要性,你的项目有基类吧?):
小细节:
这次升级并没有改太多的东西,主要问题是在安全区上。
iOS11开发之有趣的新特性,第一波。
整体 iOS 11 的适配工作量并不是很多,我就不讲了,讲一些有趣的东西,期初想起名叫“实用的”,虽然今天讲的大部分都是实用的,不过有一些还是“有趣但不太实用”,或者说会在相当长一段时间内不太实用。