皮肤管理器 0.1.0

皮肤管理器 0.1.0

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

nange 维护。



  • 作者:
  • TangNan

皮肤管理器

皮肤管理器是一个轻量级的仅用 Swift 编写的应用主题管理库。该项目受到了许多开源项目的启发,例如 swiftThemeNightNight。与其他类似的项目相比,SkinManager 提供了便捷的 API、简单的使用通知以及许多其他功能。

特性

  • [x] Swift 设计实现和 API
  • [x] 简单扩展
  • [x] 优化了 UIImage 和 UIColor
  • [x] 易用的通知

要求

  • iOS 7.0+
  • swift 3

安装

使用

主题

  1. 配置主题数据

     view.skin.backgroundColor = ColorPicker.hexs("#2dff86","#77054c")
    
     label.skin.textColor = ColorPicker.hexs("#fe5533","#33ddff")
    
     label.skin.alpha = CGFloatPicker.values([0.8,1.0])
     
     imageView.skin.image = ImagePicker.names(["day","night"])
    

    或者,您也可以移除所有类型

     view.skin.backgroundColor = .hexs("#2dff86","#77054c")
    
     label.skin.textColor = .hexs("#fe5533","#33ddff")
    
     label.skin.alpha = .values([0.8,1.0])
     
     imageView.skin.image = .names(["day","night"])
    
  2. 更改主题

    • 定义您自己的主题名称

         public enum Theme:Int{
           case day = 0      
           case night
         }
      
         struct ThemeManager{
           public static var theme:Theme = .day{
             didSet{ SkinManager.skinIndex = theme.rawValue }
            }
         }
      
    • 切换主题

         switch ThemeManager.theme {
           case .day: ThemeManager.theme = .night
           case .night: ThemeManager.theme = .day
         }
      
  • 如果您不想自动更新主题,可以使用选择器避免使用 'if else'

      view.backgroundColor = ColorPicker.hexs("#ff00ff","#00ff00").value
    

通知

有时,您可能希望当主题更改时得到通知。SkinManager 提供了一个简单的 API。您不需要像这样编写很多代码

  NotificationCenter.default.addObserver(self,  selector: #selector(doMethod), name: NSNotification.Name(rawValue: "NotificationName"), object: nil)

并在 dealloc 时移除

NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue:NotificationName), object: nil)

简单地写

SkinManager.add(observer: self, for: #selector(doMethod))

或者使用闭包

SkinManager.add(observer: self){ doSomeThing }

在 dealloc 被调用后,观察者将自动移除。

支持的属性

UIView

var backgroundColor:ColorPicker?
  
var alpha:CGFloatPicker?
  
var tintColor:ColorPicker?

UILabel

var text:StringPicker?
 
var textColor:ColorPicker?
  
var tintColor:ColorPicker?
  
var shadowColor:ColorPicker?
  
var highlightedTextColor:ColorPicker?

UITextView{

var textColor:ColorPicker?

UITextField

var textColor:ColorPicker?

UIImageView

var image:ImagePicker?

UIButton

func setImage(_ imagePicker:ImagePicker?, for state:UIControlState)

func setBackgroundColor(_ imagePicker:ImagePicker?, for state:UIControlState)

func setTitle(_ stringPicker:StringPicker?,for state:UIControlState)

func setTitleColor(_ colorPicker:ColorPicker?, for state:UIControlState)

func setAttributedTitle(_ attributedStringPicker:AttributedStringPicker?, for state:UIControlState)

UITableView

var separatorColor:ColorPicker?

UIProgressView

var trackTintColor:ColorPicker?

var progressTintColor:ColorPicker?

var progressImage:ImagePicker?

var trackImage:ImagePicker?

UIPageControl

var pageIndicatorTintColor:ColorPicker?

var currentPageIndicatorTintColor:ColorPicker?

UIToolbar

var barTintColor:ColorPicker?

UISearchBar

var barTintColor:ColorPicker?

UINavigatonBar

public var barTintColor:ColorPicker?

UITabBar

var barTintColor:ColorPicker?

UISwitch

var onTintColor:ColorPicker?

var thumbTintColor:ColorPicker?

var onImage:ImagePicker?

var offImage:ImagePicker?

UISlider

var sliderThumbTintColor:ColorPicker?

var maximumTrackTintColor:ColorPicker?

var minimumTrackTintColor:ColorPicker?

CALayer

var backgroundColor:CGColorPicker?

var borderColor:CGColorPicker?

var shadowColor:CGColorPicker?

CAShapeLayer

var fillColor:CGColorPicker? 

var strokeColor:CGColorPicker?

Lisence

MIT许可证(MIT)

版权所有 © 2016 nangezao(《https://github.com/nangege/》)

以下是在此软件和关联文档(“软件”)副本的任何个人,免费、无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件副本的个人这样做,条件如下

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“现状”提供,不提供任何形式的 warranties,无论是明示的还是暗示的,包括但不限于对适销性、特定用途适用性和非侵犯性的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论是在合同行为、侵权或其他行为中产生的,从软件产生、出现或与此软件的使用或其他交易有关的。