redribben

UIColor Comparison

Oct 25th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.89 KB | None | 0 0
  1. import UIKit
  2.  
  3. extension UIColor {
  4.     func rgb() -> [Int] {
  5.         var fRed : CGFloat = 0
  6.         var fGreen : CGFloat = 0
  7.         var fBlue : CGFloat = 0
  8.         var fAlpha: CGFloat = 0
  9.         if self.getRed(&fRed, green: &fGreen, blue: &fBlue, alpha: &fAlpha) {
  10.             let iRed = Int(fRed * 255.0)
  11.             let iGreen = Int(fGreen * 255.0)
  12.             let iBlue = Int(fBlue * 255.0)
  13.             let iAlpha = Int(fAlpha * 255.0)
  14.            
  15.             return [iRed, iGreen, iBlue, iAlpha]
  16.         } else {
  17.             // Could not extract RGBA components:
  18.             return []
  19.         }
  20.     }
  21. }
  22.  
  23.  
  24. extension UserDefaults {
  25.     func color(forKey defaultName: String) -> UIColor? {
  26.         var color: UIColor?
  27.         if let colorData = data(forKey: defaultName) {
  28.             let colorArray = NSKeyedUnarchiver.unarchiveObject(with: colorData) as! [Int]
  29.             color = UIColor(red: CGFloat(colorArray[0])/255, green: CGFloat(colorArray[1])/255, blue: CGFloat(colorArray[2])/255, alpha: CGFloat(colorArray[3])/255)
  30.         }
  31.         return color
  32.     }
  33.    
  34.     func set(_ value: UIColor?, forKey defaultName: String) {
  35.         var colorData: NSData?
  36.         if let colorArray = value?.rgb() {
  37.             colorData = NSKeyedArchiver.archivedData(withRootObject: colorArray) as NSData?
  38.         }
  39.         set(colorData, forKey: defaultName)
  40.     }
  41. }
  42.  
  43. extension UIColor {
  44.     class func paper() -> UIColor {
  45.         return UIColor(red:248/255, green:236/255, blue:194/255, alpha:1.0)
  46.     }
  47. }
  48.  
  49.  
  50. let myObject: UIColor = UIColor.paper()
  51. let objectArray = [UIColor.white, UIColor.lightGray, UIColor.red, UIColor.paper()]
  52.  
  53. //Saving
  54. UserDefaults.standard.set(myObject, forKey: "myKey")
  55.  
  56. //Extracting
  57. let defaultColor : UIColor = UserDefaults.standard.color(forKey: "myKey")!
  58.  
  59.  
  60. let indx : Int = objectArray.index(where: { $0.rgb() == defaultColor.rgb() })!
  61.  
  62. print(indx)
Advertisement
Add Comment
Please, Sign In to add comment