1. ホーム
  2. アイオス

[解決済み】UIButtonがハイライトされた状態で背景色を変更するには?

2022-04-04 22:37:05

質問

私のアプリのある時点で、ハイライトされた UIButton (例えば、ユーザーがボタンに指を置いたとき) ボタンがハイライトされている間 (つまり、ユーザーの指がまだボタン上にある間) 背景色を変更する必要があります。

以下のように試してみました。

_button.backgroundColor = [UIColor redColor];

しかし、うまくいきません。色は変わらないままです。ボタンがハイライトされていないときに同じコードを試してみましたが、うまくいきました。また -setNeedsDisplay 色を変更した後では、何の効果もありませんでした。

ボタンの背景色を強制的に変更するには?

どのように解決するのですか?

をオーバーライドすることができます。 UIButton 's setHighlighted メソッドを使用します。

オブジェクティブC

- (void)setHighlighted:(BOOL)highlighted {
    [super setHighlighted:highlighted];

    if (highlighted) {
        self.backgroundColor = UIColorFromRGB(0x387038);
    } else {
        self.backgroundColor = UIColorFromRGB(0x5bb75b);
    }
}

Swift 3.0とSwift 4.1について

override open var isHighlighted: Bool {
    didSet {
        backgroundColor = isHighlighted ? UIColor.black : UIColor.white
    }
}