2015-07-02 60 views
1

我一個簡單的(好吧,應該是簡單的),計算器,估算基於投入少風險的工作(開啓/關閉)的UIButton沒有反應,第一次記者在斯威夫特

一切工作正常,除了UIButtons需要點擊2次才能開始切換。之後,UIButtons按預期工作。

這裏是代碼(包含在viewDidLoad中())

@IBOutlet weak var confusionButton: UIButton! 

var counter = 0 

var confusionToggle = 0 

,這裏是行動

@IBAction func pressConfusion(sender: UIButton) { 

     if confusionToggle == 0 { 

      confusionButton.backgroundColor = UIColor.clearColor() 
      confusionButton.alpha = 1; 
      confusionToggle++; 
      counter++; 
     } else { 
      confusionButton.backgroundColor = UIColor.grayColor() 
      confusionButton.alpha = 0.5; 
      confusionToggle = 0 
      counter--; 
     } 




    } 

在這一個有什麼想法?我的斯威夫特技能非常有限(我第一次嘗試斯威夫特)

回答

1

我不知道你想做什麼。

只是讓你知道confusionToggle將在第一次爲0。所以,當你點擊按鈕時,你的第一個條件將被調用,它將清除背景顏色並將confusionToggle的值增加到1,然後在因爲1之後它不會進入第一個條件。所以,它轉到其他部分,並將背景顏色設置爲灰色。 confusionToggle再次變爲0

它會遍歷像每次0 - 1 - 0 - 1 ...

如果你想要做灰色的按鈕,當你點擊,那麼你必須改變你的邏輯。

if confusionToggle == 0 { 
     confusionButton.backgroundColor = UIColor.grayColor() 
     confusionButton.alpha = 0.5; 
     confusionToggle = 1; 
     counter++; 
    } else { 
     confusionButton.backgroundColor = UIColor.clearColor() 
     confusionButton.alpha = 1; 
     confusionToggle = 0 
     counter--; 
    } 

希望它對你有幫助。

1

認爲你只是讓自己感到困惑。使用print語句首先了解發生了什麼,然後執行所有你喜歡的按鈕UI更改。

@IBAction func tapButton(sender: UIButton) { 

    // user println to help debug 
    println(confusionToggle) 

    if confusionToggle == 0 { 
     sender.backgroundColor = UIColor.grayColor() 
     sender.alpha = 0.5; 
     confusionToggle++; 
     counter++; 
    } 
    else { 
     // RESET 
     sender.backgroundColor = UIColor.clearColor() 
     sender.alpha = 1; 
     confusionToggle = 0 
     counter--; 
    } 
}