12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- //
- // ThemeManager+Plist.swift
- // SwiftTheme
- //
- // Created by Gesen on 16/9/18.
- // Copyright © 2016年 Gesen. All rights reserved.
- //
- import UIKit
- @objc extension O2ThemeManager {
-
- public class func value(for keyPath: String) -> Any? {
- return currentTheme?.value(forKeyPath: keyPath)
- }
-
- public class func string(for keyPath: String) -> String? {
- guard let string = currentTheme?.value(forKeyPath: keyPath) as? String else {
- print("SwiftTheme WARNING: Not found string key path: \(keyPath)")
- return nil
- }
- return string
- }
-
- public class func number(for keyPath: String) -> NSNumber? {
- guard let number = currentTheme?.value(forKeyPath: keyPath) as? NSNumber else {
- print("SwiftTheme WARNING: Not found number key path: \(keyPath)")
- return nil
- }
- return number
- }
-
- public class func dictionary(for keyPath: String) -> NSDictionary? {
- guard let dict = currentTheme?.value(forKeyPath: keyPath) as? NSDictionary else {
- print("SwiftTheme WARNING: Not found dictionary key path: \(keyPath)")
- return nil
- }
- return dict
- }
-
- public class func color(for keyPath: String) -> UIColor? {
- guard let rgba = string(for: keyPath) else { return nil }
- guard let color = try? UIColor(rgba_throws: rgba) else {
- print("SwiftTheme WARNING: Not convert rgba \(rgba) at key path: \(keyPath)")
- return nil
- }
- return color
- }
-
- public class func image(for keyPath: String) -> UIImage? {
- guard let imageName = string(for: keyPath) else { return nil }
- if let filePath = currentThemePath?.URL?.appendingPathComponent(imageName).path {
- guard let image = UIImage(contentsOfFile: filePath) else {
- print("SwiftTheme WARNING: Not found image at file path: \(filePath)")
- return nil
- }
- return image
- } else {
- guard let image = UIImage(named: imageName) else {
- print("SwiftTheme WARNING: Not found image name at main bundle: \(imageName)")
- return nil
- }
- return image
- }
- }
-
- }
|