0
Storyboardを使用してCAGradientLayerに4つのUIColorsを設定するクラスがあります。Swiftでカスタムセッターを使用して配列プロパティを更新する
私は、ストーリーボードから設定されているUIColorsを追跡するために配列を使用しています。
ユーザーが色を設定すると、その色を配列に追加し、色を何も設定していない場合(それは可能ですか?)、配列から色を削除します。
グラデーションレイヤーの色は、2〜4色です。
以下のコードは私が思いついたものですが、私はできるだけクリーナーを探しています。
class ViewController: UIViewController {
var gradientLayer = CAGradientLayer()
var gradientColors = [UIColor]()
@IBInspectable var color1Value: UIColor?
{
didSet {
self.updateGradientLayer()
}
}
@IBInspectable var color2Value: UIColor? {
didSet {
self.updateGradientLayer()
}
}
@IBInspectable var color3Value: UIColor? {
didSet {
self.updateGradientLayer()
}
}
@IBInspectable var color4Value: UIColor? {
didSet {
self.updateGradientLayer()
}
}
func updateGradientLayer() {
gradientColors.removeAll()
gradientColors.append(color1Value!)
gradientColors.append(color2Value!)
gradientColors.append(color3Value!)
gradientColors.append(color4Value!)
gradientLayer.colors = gradientColors
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}