iOS颜色,主题那些事

2018-01-14  本文已影响103人  DevKyle

颜色管理

颜色是一个app展示的基础,每一个成熟的app都该有自己的设计风格。为了规范颜色,通过枚举来来管理颜色。为了切换主题,采用不同枚举对应多个颜色。可以编辑TCColorConfig.swift 来编辑设置默认配色方案 ,也可以通过ThemeManager.sharedManager.setThemeColorList动态设置配色方案。
需要注意的是TCColorName个数要和kDefaultColorList的个数需要一一对应。主题的个数ThemeType要和kDefaultColorList每个元素的个数一致。

// default work with kDefaultColorList
public enum TCColorName:Int {
    case ColorNameRed = 0
    case ColorNameBlue
}

let kDefaultColorList:[[String]] = [
    [ "ee1a1a", "892323"],
    [ "1b88ee", "144e84"]
]

public enum ThemeType:Int {
    case themeDay = 0
    case themeNight
}

功能

颜色

提供了十六进制,根据枚举TCColorName来设置颜色的方法

UIView

  1. tc_themeBlock :是一个主题切换的block,不止可以处理颜色的变化。还可以设置一切和UIView相关的属性。
  2. tc_backgroundColor :当主题切换,可以用来设置UIView背景色
  3. tc_borderColor设置layer borderColor

UILabel Extension

  1. tc_textColorUILabel字体颜色
  2. tc_highlightedTextColorUILabel 高亮字体颜色

UIImageView

UIImageView 在主题切换中需要不同的图片,所以需要对图片的命名采取一定的规范,通过
ThemeManager.sharedManager.setThemeImagePrefix 命名规范,比如["","night"],那么"themeImage"
对应的主题图片名字为"night_themeImage"。提供两种方式来设置主题图片如下

  1. tc_imageName 设置默认主题下的图片名

对于纯色的图片 还提供对图片进行着色的方法
func set_imageName(_ imageName:String?,nightTintColor tintColor:TCColorName?)

UIButton

UIButton具有多个状态,对于图片

  1. func tc_setImage(_ imageName: String?, for state: UIControlState)
  2. func tc_setImage(_ imageName: String?, tintColor:TCColorName?,for state: UIControlState)

对于UIButton的字体颜色提供

  1. func tc_setTitleColor(_ color: TCColorName?, for state: UIControlState)
  2. func tc_setTitleShadowColor(_ color: TCColorName?, for state: UIControlState)

安装

推荐 直接拖动文件到工程文件下 ,当然也支持CocoaPods

CocoaPods

use_frameworks!
pod 'ThemeColor'

Source files

复制"ThemeColor" 文件夹中所有的文件到你的工程中去

配置

编辑 TCColorConfig.swift 文件

喜欢的朋友,可以去GitHub上star一下

ThemeColor

上一篇下一篇

猜你喜欢

热点阅读