カスタム ボタンがあります。これは標準の UIButton ですが、CAGradientLayer が追加されています。
カスタム ボタンでは、次の 2 つのプロパティを定義しました。
@property (nonatomic, strong) UIColor* topColor UI_APPEARANCE_SELECTOR;
@property (nonatomic, strong) UIColor* bottomColor UI_APPEARANCE_SELECTOR;
これら 2 つの値が設定されると、my ボタンは素敵な線形グラデーションで描画されます。よく働く。
また、InterfaceBuilder にできる限り多くのことを入れたいと思っています。したがって、これらのボタンのいくつかでは、IB の「Identity Inpsector」で、これらのプロパティの「ユーザー定義ランタイム属性」を追加します。繰り返しますが、うまくいきます。
次に、UIAppearance プロキシを使用してみようと思いました。私のカスタムグラデーションボタンのほとんどはすべて同じ色です. しかし、異なるものもいくつかあります。したがって、外観プロキシを使用してこのクラスのデフォルトの色を設定し、異なるボタンについては、InterfaceBuilder で値を設定するだけでよいと考えました。これは失敗します。
どうやら、最初にストーリーボード ファイルからランタイム属性を読み取っていますが、その後、これらの値は外観プロキシによって上書きされます。これがこのように機能するとは思いませんが、機能します。
これを達成するためのヒントはありますか?それとも、ランタイム属性のことをあきらめるべきですか?