暗黑模式(iOS多主题)完美设计实现

  • 时间:2020-11-08 01:57 作者:Tkoul 来源: 阅读:183
  • 扫一扫,手机访问
摘要:Introduce:        ios暗黑模式,多主题多皮肤设计,用于处理在ios上实现可跟随系统主题变更,也可不跟随实现自己设置主题模式设计。本sdk可以支持任意多个主题。开发习惯上极度契合ios开发习惯,对于复杂的主题设置类,均可使用对象的tkThemeChangeBlock进行回调设置变更。

Introduce:

        ios暗黑模式,多主题多皮肤设计,用于处理在ios上实现可跟随系统主题变更,也可不跟随实现自己设置主题模式设计。本sdk可以支持任意多个主题。开发习惯上极度契合ios开发习惯,对于复杂的主题设置类,均可使用对象的tkThemeChangeBlock进行回调设置变更。优势:

1.代码无侵入,轻量级SDK。上手简单。完美处理多任务后端主题即时变更,屏幕快照变更主体。

2.全局控制,效率极高。用hashmap的形式管理block指针对象,轻量。

3.一切OC对象皆tkThemeChangeBlock主题回调,根据主题的目前的索引变更主题。

4.常用的UIKit的组件,赋予主题属性,主题方法等。直接设置主题颜色、图片数组就可。完全契合系统设置属性,方法习惯。

5.设计原理完美,弱引用的形式回调,不会对项目产生内存泄漏,内存占用不释放问题。UIKit-View层即可使用即注册,跟随对象释放即销毁。主题回调block即可使用即注册,跟随对象释放即销毁。

move show

效果视频如下:(ps:没办法,简书只支持优酷/腾讯视频😀  没法去广告 想看大视频,点链接:https://v.youku.com/v_show/id_XNDcwNTcxODMwNA==.html)


iOSDarkDemo.mp4

How To Get Started

1.导入  pod  'TKThemeConfig'

2.在使用到的地方 #import <TKThemeConfig/TKThemeConfig.h>

程序加载完毕初始化

How To Usage

1.便捷用法

      sdk封装可常见的view控件。对于这些常见的控件,比方CALayer,UIView,UIImageView,UIButton, UILabel等15个组件进行了贴合开发者的属性定制,在原属性上加前缀TKTheme。能满足80%以上的开发需求。 剩下的用万能方法就可。有时间功夫的小伙伴可以加入一起完善便捷用法哦。 示例如下: // UIButton like //UIImageView like //CALayer like 。其它的可自行看头文件

layer.tkThemebackgroundColors = @[UIColor.brownColor,UIColor.darkGrayColor];

[themeSeting setTkThemebackgroundColors:@[UIColor.redColor,UIColor.brownColor]];

[imageViewsetTkThemeimages:@[[UIImage imageNamed:@"001.jpg"],[UIImage imageNamed:@"002.jpg"]]];

2.万能用法

      一切皆object对象,一切对象具有tkThemeChangeBlock(NSObject+TKUpdate.h),变更主题会触发 任意对象的tkThemeChangeBlock回调,可以在这个回调做主题设置。 本回调为主线程,进行UI主题变更,但是不要做耗时操作,耗时操作放到异步非主线程就可。 示例如下: //view.tkThemeChangeBlock //navigationBar.navigationBar

self.view.tkThemeChangeBlock= ^(id  _Nullableitself,NSUIntegerthemeIndex) { //设置主题    }

self.navigationController.navigationBar.tkThemeChangeBlock = ^(id  _Nullable itself, NSUInteger themeIndex) { //设置主题  }

项目地址: Tkoul/TKThemeConfig

本文为原创,啃了几天泡面搞出来的。转载注明出处。喜欢的给个小星星。对不足的地方,可以一起交流,提升。邮件:Tkoull@163.com

对简书编辑器玩不转,有点丑!设计思想后续补上。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部