换肤-基础 - (Swift)

之前写了几篇OC中换肤的功能介绍,这里使用Swift封装了一个工具类,简单实现了根据当前皮肤状态切换图片的效果

import UIKit

class ChangeSkinTool: NSObject {
    
    // 全局访问点
    static let sharedTool: ChangeSkinTool = ChangeSkinTool()
    
    private var isNight: Bool = false
    
    override init() {
        super.init()
        
       isNight = NSUserDefaults.standardUserDefaults().boolForKey("isNightMode")
        
    }
    
    
    // 根据皮肤设置图片
    func setImageByCurrentSkin (imageName: String) -> UIImage {
        
        var name: String = imageName
        if isNight {
            
            name = "\(imageName)_night"
        }
        return UIImage(named: name)!
        
    }
    
    // 返回当前皮肤状态
    func currentSkin() -> Bool {
        return isNight
    }
    
    // 保存当前皮肤状态
    func saveCurrentSkinMode(isNightMode: Bool) -> Void {
        
        isNight = isNightMode
        // 本地化
        NSUserDefaults.standardUserDefaults().setBool(isNightMode, forKey: "isNightMode")
        NSUserDefaults.standardUserDefaults().synchronize()
    }

}

与之前OC版本原理一直,外界使用示例代码:

    @IBOutlet weak var isNigthSwitch: UISwitch!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        setupUI()
    }

    private func setupUI () -> Void{
        
        isNigthSwitch.on = ChangeSkinTool.sharedTool.currentSkin()
        
        firstImageView.image = ChangeSkinTool.sharedTool.setImageByCurrentSkin("girl")
        
    }
    
    
    @IBAction func isNightSwitchClick(sender: UISwitch) {
        
        // 保存皮肤状态
        ChangeSkinTool.sharedTool.saveCurrentSkinMode(sender.on)
        
        firstImageView.image = ChangeSkinTool.sharedTool.setImageByCurrentSkin("girl")
        
    }

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 124,518评论 16 534
  • Java虚拟机会在执行Java程序的时候,把它管理的内存区域划分为若干不同的数据区域。这里,按照是否线程共享划分:...
    zhuangchuhan阅读 15评论 0 0
  • 女人是很有意思的生物,时时用自己的行动宣誓领土主权。 和婆婆住到一起缘起机缘巧合,怪我那不争气的亲妈出了点...
    eja阅读 54评论 0 1
  • 你是一粒 浪迹在繁华世俗里的尘 等 过往成烟现实迷雾重生 等 稚嫩褪尽沉浮入戏太深 等 霓虹隐去黑夜寂静无声 哭泣
    kesain阅读 48评论 0 3