[英]UIButton change background when tapped (programmatically)
我有一個自定義的UIButton,但是無法基於快速點擊來更改背景或文本顏色。 如果某些方法有效,請長按:
buton.isUserInteractionEnabled = true
buton.setTitle("text_normal", for: .normal)
buton.setTitle("text_highlighted", for: .highlighted)
buton.setTitle("text_selected", for: .selected)
buton.setTitle("text_focused", for: .focused)
按住按鈕約1秒鍾后,我只能獲得“ text_highlighted”文本。 但是,短按一無所獲。
但是該操作已正確觸發:
let tap2 = UITapGestureRecognizer(target: self, action: #selector(handleTap))
buton.addGestureRecognizer(tap2)
@objc func handleTap(sender: UITapGestureRecognizer) {
print("click")
}
我試過的:添加自定義
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
...
稍后也會觸發。 並且與tocuhesEnded結合使用也不會暫時改變顏色(也許太快了)。
我也不能使用UIButton(type:.system)-它不是系統樣式的按鈕。
與更改文本類似,此方法也不起作用:
self.setTitleColor(UIColor.gray, for: .normal)
self.setTitleColor(UIColor.yellow, for: .selected)
self.setTitleColor(UIColor.yellow, for: .highlighted)
self.setTitleColor(UIColor.yellow, for: .focused)
我只有長按才能看到黃色。 我正在尋找類似的東西,但是它也需要快速點擊。
自定義按鈕正在修改layoutSubviews(),但不能修改顏色。 自定義按鈕包含默認圖像和標簽。 整個按鈕都有圓角。 但是總體上沒有什么特別的。
我沒有使用任何情節提要或XIB-所有內容均以編程方式在Swift 4中提供。 該按鈕應該指向另一個ViewController,但是我想查看單擊時的立即反饋。 從情節提要中創建時類似的東西: https : //youtu.be/lksW12megQg? t = 3m25s-現在即使是簡單的alpha更改也不適用於我。
檢查uibutton的isselected屬性是否被選中,然后更改按鈕的背景色
詹·何塞(Jen Jose)是對的-我的上課時遇到了一個問題,就是“吃光了我的一切”。 我將其移至其他ViewController時已確認這一點+表存在相同的問題,無法處理觸摸事件( https://stackoverflow.com/a/9248827/1317362 )
編輯:
確切地說-此按鈕位於UIScrollView中。
添加scrollView.delaysContentTouches = NO;
徹底解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.