Files
SwiftUI-LifeGame/Shared/Extensions/Color+.swift
T

40 lines
935 B
Swift

//
// Color+.swift
// LifeGameApp
//
// Created by Yusuke Hosonuma on 2020/07/25.
//
import SwiftUI
extension Color {
var cgColor: CGColor {
#if os(macOS)
return NSColor(self).cgColor
#else
return UIColor(self).cgColor
#endif
}
}
extension Color: RawRepresentable {
public var rawValue: Data {
#if os(macOS)
let color = NSColor(self)
#else
let color = UIColor(self)
#endif
return try! NSKeyedArchiver.archivedData(withRootObject: color, requiringSecureCoding: false)
}
public init?(rawValue: Data) {
guard let data = try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(rawValue) else { return nil }
#if os(macOS)
guard let color = data as? NSColor else { return nil }
#else
guard let color = data as? UIColor else { return nil }
#endif
self.init(color)
}
}