UIButton のチェックボックス サブクラスを実装しています。2 つの背景画像 (オン/オフ) と 4 つの概念的な状態があります。
on
- 画像上/強調表示されていないoff
- 画像オフ / ハイライトされていないon & pressed
- 画像上/強調表示off & pressed
- 画像オフ / ハイライト
オンとオフのみの背景画像を設定すると (UIControlStateNormal
とUIControlStateSelected
)、押したときにボタンが強調表示されます。
ただし、 の場合on & pressed
は、オフの画像を使用します (さすがに、状態がUIControlStateSelected | UIControlStateHighlighted
であるため、通常の状態の画像を使用します)。
そのため、背景画像をUIControlStateSelected | UIControlStateHighlighted
オン画像に設定しましたが、プログラムによるハイライトが無効になりました-その状態に特定の背景画像を設定すると、ロジックはおそらくハイライトをオーバーライドしたいと思うからです。
3 番目の画像を使用したくないのですが、背景画像を設定しUIControlStateSelected | UIControlStateHighlighted
て、プログラムによるハイライトを適用することは可能ですか?
[self setAdjustsImageWhenHighlighted:YES];
背景画像を設定した後、すでに呼び出しています。