美文网首页
主题切换

主题切换

作者: 叶语JM | 来源:发表于2020-08-06 11:05 被阅读0次

    1.什么是主题切换?

    就是在一个app中实现不同的主题.在同一种主题下,所有字体颜色一样,背景图的样式一样.

    2.怎么实现?

    (1).多个主题包中的图片名一定要一样,因为同一个控件在不同主题下代码是一样的,只是图片不一样,那就就是设置图片的时候使用的是用同一个图片名,只是路径不一样.

    (2).主题切换怎么保存每个主题包:

    (2.1)数据持久化

    (2.2)每个主题包要相互独立

    (2.3)每个主题包应该用实体文件,因为实体文件夹才能是路径

    (在工程里拉进一个文件夹时勾选以下三个选项就会变成实体文件夹)

    实体文件夹与虚拟文件夹的区别:


    3.实现:

    (1)使用通知的广播模式向每个类发送主题切换的通知

    (2)因为主题切换牵扯的控件非常多,而且每个都要注册通知,才能对主题切换的通知起作用,所以要父类,在父类中完成注册通知

    4.那些类需要对主题切换起作用

    (1)UITabBarController

    (2)UINavigationController

    (3)UIViewController

    (4)UIImageView

    (5)UILabel

    (6)UIButton

    (所以这些类都要写成父类,重写父类:让代码可扩展性更高,有利于在后期的更新和维护,耦合性更低)

    5.每个主题下都有自己对应的颜色

    6.在没有其他主题的情况下,需要一套默认的主题在Bunde里面

    下面就以一个UIImageView类为例子吧

    首先写一个UIImageView的父类,重写初始化方法,在方法里添加一个通知,当接收到通知时,图片名字改变了.

    通知的发送是你按了主题按钮时就开始的(通知要记得先注册,再发送通知)

    只要是调用到这个父类的,当主题按钮改变时都可以接收到通知,所以就会做出相应的改变.这样就可以实现主题切换的功能了.

    相关文章

      网友评论

          本文标题:主题切换

          本文链接:https://www.haomeiwen.com/subject/llptrttx.html