これは、Swift機能(拡張機能、計算されたプロパティ、タプル)を使用して、わずか数行のコードで同じことを行うための優れた方法です。
extension UIColor {
var hsba: (h: CGFloat, s: CGFloat, b: CGFloat, a: CGFloat) {
var hsba: (h: CGFloat, s: CGFloat, b: CGFloat, a: CGFloat) = (0, 0, 0, 0)
self.getHue(&(hsba.h), saturation: &(hsba.s), brightness: &(hsba.b), alpha: &(hsba.a))
return hsba
}
}
Swift 3.2/4マイナーアップデート
hsba
Swift 3.2 / 4は、への同じ呼び出し内で変数を数回変更していたため、前のコードでトリガーされた新しい警告を強制しましたgetHue
パラメータ「hsba」への同時アクセス。ただし、変更には排他的アクセスが必要です。ローカル変数へのコピーを検討してください。
extension UIColor {
var hsba: (h: CGFloat, s: CGFloat, b: CGFloat, a: CGFloat) {
var h: CGFloat = 0, s: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0
self.getHue(&h, saturation: &s, brightness: &b, alpha: &a)
return (h: h, s: s, b: b, a: a)
}
}