10

NSArray IBInspectableストーリーボード カスタム ビューで複数の値を定義するために使用する方法はありますか?

NSArrayそこに格納されるオブジェクトの種類に関する情報がないことはわかっているので、おそらく問題です。しかし、注釈などを使用した解決策はありますか?

私がやりたいことは、ストーリーボードNSArrayUIColors介して設定し、ストーリーボードの視覚化中にビューにグラデーション レイヤーを描画することです。

startColor と endColor という 2 つのプロパティの作成を開始しました。それはうまくいきますが、私はこれをもっと一般的にしたいと思っています。

これは私の drawRect メソッドです:

- (void)drawRect:(CGRect)rect {
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];

    gradientLayer.frame = self.bounds;

    gradientLayer.colors = [NSArray arrayWithObjects:(id)[self.startColor CGColor], (id)[self.endColor CGColor], nil];

    [self.layer addSublayer:gradientLayer];
}

そして、私はこのようなことをしたい:

- (void)drawRect:(CGRect)rect {
    CAGradientLayer *gradientLayer = [CAGradientLayer layer];

    gradientLayer.frame = self.bounds;

    // colorsArray should be an IBInspectable property in order to be setted on Storyboard Attributes Inspector
    gradientLayer.colors = self.colorsArray;

    [self.layer addSublayer:gradientLayer];
}
4

1 に答える 1