PDF 课件和源代码下载地址:
作者回复: 首先statusBarOrientation在iOS13中标记了API_DEPRECATED,其实大部分App都要兼容iOS13以前的版本,所以对于一般的App来说是不需要修改的。在iOS13中,由于UIWindowScene的引入,UIApplication的职责发生了变化,UI相关的逻辑都拆分到了UIWindowScene中,所以对于读取,我们直接读取UIWindowScene.interfaceOrientation即可;同时由于statusBarOrientation是readwrite的(虽然文档中建议在iOS6之后就不在使用了,iOS9已经标记DEPRECATED),好多项目仍然配合controller的shouldAutorotate使用这种方式进行旋转,这部分不是iOS13的问题,解决的办法一般是设置UIDevice/隐藏掉statusbar/自定义transform等。
作者回复: 虽然AutoLayout系统不断的优化,但是性能上相对Frame还是差一些。同时对于单一的场景(非横竖屏等),基于目前App的常规样式设计,其实AutoLayout的代码不见得比Frame代码少。 而最重要的,无论从需求的复杂程度、组件的封装复用、性能的深入优化、以及各种动画效果等,frame都会带来很多的便利。所以主流的App,都是Frame为主实现,辅助部分页面autoLayout混合。那么对于iPhoneX适配这种底层功能,我们需要的就是普世的方案,能支持可能的各种布局方式的实现,所以在课程中主要介绍了Frame的方式。