2016-10-21 43 views
1
  • 我有兩個UI切換斯威夫特:如何切換兩個UI切換

    • 當我點擊一個,我想其他的關閉,反之亦然
    • 下面我有兩個開關的動作。
    • 我試着檢查開關是否開啓(默認情況下),如果是開啓時,則關閉它,但如果未開啓,則將其打開。

      @IBAction func switchOnePressed(_ sender: UISwitch) { 
      if switchOne.isOn { 
          label.text = "UISwitch is ON" 
          switchOne.setOn(false, animated: true) 
      } else { 
          label.text = "UISwitch is OFF" 
          switchOne.setOn(true, animated: true) 
      } 
      } 
      
      @IBAction func switchTwoPressed(_ sender: UISwitch) {} 
      

任何幫助將是巨大的!

+0

您需要在'switchOnePress'方法內爲'switchTwo'調用'setOn'。 – rmaddy

+0

嘿馬迪。我嘗試了一些變化,最後我得到了一些奇怪的結果,例如第二個開關打開並關閉一個開關,但如果我再次這樣做,他們都會關閉等。我想我錯過了一些明顯的東西。 – MegaTron

+0

用您最新的實際代碼更新您的問題。更新你的問題,明確解釋你想要在每種情況下發生的事情,並清楚地解釋實際發生的事情。 – rmaddy

回答

3

通過減少所需的代碼,可以大大簡化事情。然後根據呼叫開關的當前值設置相反的開關。

@IBAction func switchOnePressed(_ sender: UISwitch) { 
    label.text = sender.isOn ? "UISwitch is ON" : "UISwitch is OFF" 
    switchTwo.setOn(!sender.isOn, animated: true) 
} 

@IBAction func switchTwoPressed(_ sender: UISwitch) { 
    label.text = sender.isOn ? "UISwitch is ON" : "UISwitch is OFF" 
    switchOne.setOn(!sender.isOn, animated: true) 
} 

您不需要設置調用開關的值,因爲它應該已經由界面交互處理。

此外,我不知道你的意圖是與標籤是什麼,但它會誤導它的當前形式,因爲它不表示&關閉。也許你對每一個都有獨特的標籤,但這只是我的猜測而已。

+0

這實際上完美。感謝CodeBender!非常感激。祝你有個美好的夜晚:) – MegaTron