登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

主题更换库ThemeStyleTools

[复制链接]
来自: darren_chenchen 分类: iOS精品源码 上传时间: 2017-12-8 15:12:26
Tag:

项目介绍:

ThemeStyleTools

GitHub地址

这是一个更换主题的库,只支持更换一个主体颜色,依赖于RXSwift。由于更换主题的需求可能都是五花八门的,每个产品的想法也都有可能不同,有的需要更换tabbar的图片,或者导航栏的图片等等,想要做到完全的定制几乎是不可能的,只能根据项目具体的需求来定制。我同时也写了一份动态更换tabbar图标的demo,完全是模拟从服务器下载主题到本地,并进行更换。

要求

  • iOS 8.0+

  • swift 3.0+

使用方式

pod 'ThemeStyleTools'

简介

1.在AppDelegate里面配置默认的主题色

    
ThemeStyleTools.enable(defaultTheme: "#2F4F4F")

2.在切换主题色的地方更新主题

ThemeStyleTools.updateTheme(themeStr: colorStr!)

3.使用

//修改UIView的背景颜色 
ThemeStyleTools.cl_setupViewBackgroundColor(view: bgView)
//修改UILabel的文字颜色 
ThemeStyleTools.cl_setupViewLabelTextColor(label: label)
//UIButton文字颜色normal
ThemeStyleTools.cl_setupBtnNormalTextColor(btn: btn)
//UIButton文字颜色selected
ThemeStyleTools.cl_setupBtnSelectedTextColor(btn: btn)
//UIButton图片颜色normal 
ThemeStyleTools.cl_setupBtnNormalImgColor(btn: btn)
//UIButton图片颜色select
ThemeStyleTools.cl_setupBtnSelectImgColor(btn: btn)
//修改UIImageView的图片颜色 
ThemeStyleTools.cl_setupImageViewColor(img: bgView)

//修改UISlider的颜色 
ThemeStyleTools.cl_setupSliderColor(slider: slider)
//修改UIPageControl的颜色 
ThemeStyleTools.cl_setupPageControlColor(page: page)
//修改UIProgressView的颜色 
ThemeStyleTools.cl_setupProgressViewlColor(progress: progress)
//修改UISwitch的颜色 
ThemeStyleTools.cl_setupSwitchViewlColor(switchView: switchView)
 //修改UITextField的文字颜色 
ThemeStyleTools.cl_setupTextFieldTextColor(textField: textField) 
//修改UISegmentedControl的颜色 
ThemeStyleTools.cl_setupSegmentControllColor(segment: segment) 
//修改UITextView的文字颜色 
ThemeStyleTools.cl_setupTextViewColor(textView: self.textView)

4.在这个库中我将监听主题更换的类开放了出来,假如当app处于默认主题时我想让一个按钮的图片处于黑色状态,其他主题处于白色状态,可使用下面的方式

// 监听主题的更换,设置自己想要的颜色 
ListeningThemeAdjuster.listeningTheme.asObservable().subscribe(onNext: { (colorStr:String) in
        if colorStr != "#2F4F4F" {
            self.leftBtn.tintColor = UIColor.white
            let img = self.leftBtn.image(for: .normal)?.withRenderingMode(.alwaysTemplate)
            self.leftBtn.setImage(img, for: .normal)
        } else {
            self.leftBtn.tintColor = UIColor.black
            let img = self.leftBtn.image(for: .normal)?.withRenderingMode(.alwaysTemplate)
            self.leftBtn.setImage(img, for: .normal)
        }
    }).addDisposableTo(disposeBag)

5.该库依赖于rxswift ,截止目前RxSwift暂未更新到swift4.0,如果发现你的项目引入rxswift后报错,注意检查rxswift的编译版本
buildsettings(搜索swift language version) 将编译版本改为swift3.2,当然,如果以后支持了swift4.0,就可以忽略这一步了

相关源码推荐:

我来说两句
*滑动验证:
所有评论(56)
phoiu 2017-12-8 18:07:49
帮帮顶顶!!
回复
littleRed 2017-12-8 18:08:05
帮帮顶顶!!
回复
kengsir 2017-12-8 18:08:34
写的真的很不错
回复
hellokenken 2017-12-8 18:08:35
学习...学习...
回复
BlueManlove 2017-12-8 18:08:56
code4app好的内容真的很多~赞
回复
AlonMessi 2017-12-8 18:10:36
感谢分享,楼主V5~
回复
code4app热心网友 2017-12-8 20:16:55
淡定,淡定,淡定……
回复
code4app热心网友 2017-12-9 09:26:46
楼主用心了,内容非常精彩。
回复
code4app热心网友 2017-12-9 12:59:59
虽不明,但觉厉!
回复
提取码:  下载次数:78 状态:已购或VIP 售价:0(原价:20)金钱 下载权限:初级码农 
1107 0 78
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表