ThemeStyleTools 1.0.5

ThemeStyleTools 1.0.5

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2017年12月
SwiftSwift 版本4.0
SPM支持 SPM

Darren-chenchen 维护。



 
依赖
RxSwift>= 0
RxCocoa>= 0
 

  • 作者
  • Darren-chenchen

ThemeStyleTools

Pod Version
Pod Platform
Pod License

这是一个主题更换的库,只支持更换一个主体颜色,依赖于RXSwift。由于更换主题的需求可能很多样,每个产品的需求也各有不同,有的需要更换tabbar的图片或导航栏的图片等等,完全定制几乎不可能,只能根据项目的具体需求来定制。我还编写了一份动态更换tabbar图标的demo,完全是模拟从服务器下载主题到本地并进行更换。详细信息请参考 CLThemeDemo

效果图

(logo)

要求

  • 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)