iOS13
2019-12-17 本文已影响0人
LPL_d5fc
iOS13创建窗口
之前版本都是在AppDelegate中设置窗口的跟控制器。iOS13后这种写法依旧可以,但是AppDelegate中的window属性不见了,不能直接self.window设置了,要注意一下。
iOS13之前,AppDelegate全权处理App生命周期和UI生命周期;
iOS13之后,AppDelegate负责:
1、处理 App 生命周期
2、新的 Scene Session 生命周期
iOS13之后,Appdelegate不在负责UI生命周期,所有UI生命周期交给SceneDelegate处理
所以新写法要写在新出的SceneDelegate文件中,代码如图
![](https://img.haomeiwen.com/i20116762/cc2131f5d69c5767.png)
iOS13夜间模式
1.夜间模式也在这里做一个笔记。
iOS13后,UIColor不再是静态的颜色了,现在的UIColor是可以封装几种颜色在里面,然后当系统的dark 和 light状态切换的时候,系统会根据程序猿封装的颜色自动改变界面的颜色。
我的夜间模式就是自己写了一个UIColor的分类,在里面封装好动态颜色。通过类方法调用就可以了。如图:
![](https://img.haomeiwen.com/i20116762/4ab5d2c82fceacd2.png)
![](https://img.haomeiwen.com/i20116762/34adbdb3e5f0f222.png)
封装颜色时,只需要添加一个if判断系统的状态,然后根据不同的状态返回不同的颜色,就可以轻松实现夜间模式了。
2.关于判断系统当前的模式是dark 还是 light
![](https://img.haomeiwen.com/i20116762/2880ad6290bbfaef.png)
创建UITraitCollection对象的时候不要直接alloc, init,那样创建的对象跟当前系统的状态没有什么关联。
创建的时候一定要如上图一样UITrainCollection.currentTraitCollection;赋予当前的UITraitCollection对象,这样就可以获取当前的系统的状态了。