2016-10-18 64 views
0

我有一個簡單的需求,當用戶觸摸按鈕時,我想要在UIButton上產生顏色變化效果,我經歷了許多鏈接,但他們提出的建議,有時會用作我觸摸,我摸摸它然後工作,對於正常的觸摸它沒有工作。當在Swift中觸摸時更改按鈕的顏色

我已經通過這個鏈接。 How to change the background color of a UIButton while it's highlighted?

+0

那麼你現在有什麼代碼?發生什麼事?或者出了什麼問題,你是否得到任何錯誤 – Scriptable

+0

如果我們不能看到你的代碼是什麼樣子的話,你能否顯示你的函數 –

+0

很難調試。 –

回答

0

從你描述的應該很容易。請參閱下面的代碼。

let button = UIButton(frame: CGRect(x: 0, y: 0, width: 300, height: 40)) 
button.setTitle("Click me", for: .normal) 
button.backgroundColor = UIColor.red 
button.tintColor = UIColor.white 
button.addTarget(self, action: Selector("handleTap"), for: .touchUpOutside) 

view.addSubview(button) 

func handleTap(sender: UIButton) { 

    if sender.backgroundColor == UIColor.red { 
     sender.backgroundColor = UIColor.blue 
    } else { 
     sender.backgroundColor = UIColor.red 
    } 
} 

上面的代碼取決於你如何實現你的UI和代碼是在哪裏。如果您可以在您的實施中提供更多信息,我可以更新此信息並使其更具體。

+0

@Scriptable ..當觸摸一個按鈕時,它將保持藍色,但我希望它變成藍色後恢復到最後一個狀態。 – Saty

+0

我已經更新了答案,以便每次點擊時它都會在紅色和藍色之間變化。沒有你解釋你想如何工作,我只能做很多事情。如果需要,可以每次選擇隨機顏色。只需要添加邏輯。您知道如何更新backgroundColor屬性,因此您只需編寫應用程序邏輯以在正確的時間將其更改爲所需的顏色 – Scriptable