簡體   English   中英

敲擊(以編程方式)時,UIButton更改背景

[英]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; 徹底解決了這個問題。

詳細信息: https : //stackoverflow.com/a/16650610/1317362

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM