2017-11-07 13 views
1

私は2つのボタンでアプリを作成しました。私が望むのは、左ボタンをクリックすると背景色が変わるということです。右ボタンをクリックすると、その背景色を変更します。概念上Swiftの2つのボタンの間の背景を切り替えるには?

は、両方のボタンの次のコードで働いている:

@IBAction func pressedButton(_ sender: UIButton) { 

     sender.backgroundColor = (sender.backgroundColor == Constants.BOOL_BUTTON.enabled) ? Constants.BOOL_BUTTON.disabled : Constants.BOOL_BUTTON.enabled 

    } 

両方のボタンは、この機能にリンクされています。唯一の問題は、たとえば左ボタンに有効な色があり、ユーザーが右ボタンをクリックして選択を変更すると、左ボタンが無効な色にリセットされないことです。どのように私は上記の機能でこれを達成することができますか?

+0

第1ボタンまたは第2ボタンの場合は、「送信者」をチェックします(IBOutlet/varはそのままにしておきます)。その後、それらを "反転"する? – Larme

答えて

1

コードの問題は、右または左のボタンが押されたときに、もう片方の状態を知らないことです。

@IBAction func pressedButton(_ sender: UIButton) { 
    if sender.backgroundColor == Constants.BOOL_BUTTON.enabled { 
    return 
    } 
    sender.backgroundColor = Constants.BOOL_BUTTON.enabled 

    switch sender { 
    case self.leftButton: 
    self.rightButton.backgroundColor = Constants.BOOL_BUTTON.disabled 

    case self.rightButton: 
    self.leftButton.backgroundColor = Constants.BOOL_BUTTON.disabled 

    default: 
    return 
    } 
} 
+0

たとえば、左ボタンをクリックしたときに、2回目をクリックしても何も起こっていないことも可能ですか?今すぐ右ボタンを有効にします。その逆も同様です。 – Caspert

+0

@Caspertあなたは背景の色をチェックすることができ、それが有効なものであれば何もしません。コードを更新しました。 – ozgur

+0

ありがとう、あなたが私を助けてくれて素晴らしい! – Caspert

関連する問題