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