簡體   English   中英

按下按鈕時更改按鈕標題的想法?

[英]The idea of changing a button's title when pressed?

使用Swift,我想在點擊時更改按鈕的標題,例如從“開始”更改為“停止”,反之亦然。 這是我所做的:

var runningcode = false

@IBAction func BUTTON(sender: UIButton) {
    if runningcode {
        runningcode = false
        sender.setTitle("Start", forState: UIControlState.Normal)
    } else {
        runningcode = true
        sender.setTitle("Stop", forState: UIControlState.Normal)
    }
}

這工作了。 但是我不明白為什么在“ .setTitle”之前插入了“ sender”而不是“ BUTTON”? 插入我的按鈕名稱以表明我想更改該特定按鈕的標題似乎更合乎邏輯。.我距編程僅2周以上,所以我希望你們能用最基本的可理解術語進行解釋。 或者,如果有人可以將我引導到一本書/站點/作者進行基礎學習,我將非常感謝。

我的問題是關於sender.setTitle(“ Button Title”,forState:UIControlState.Normal)行:

1)什么是“發件人”? 這是什么意思? 為什么用它代替我按鈕的名稱?

2)什么是forState? / UIControlState? 為什么正常? 這是什么意思?

使用按鈕狀態,並為正常狀態和突出顯示狀態設置不同的標題:

sender.setTitle("Unpressed", forState: UIControlState.Normal)
sender.setTitle("Pressed", forState: UIControlState.Highlighted)

如果要保留標題更改,請使用按鈕的選定狀態而不是突出顯示。

sender.setTitle("Selected", forState: UIControlState.Selected)

//Inside your button callback
sender.selected = !sender.selected

當手指在按鈕上時,它處於突出顯示狀態。 您需要在創建按鈕時進行設置。 無需將此代碼添加到按鈕按下的回調中。

據我所知, sender就是調用操作的對象,在這種情況下, sender程序就是鏈接到IBAction BUTTON程序中的BUTTON

有關UIControlState的更多信息,請參見此處

暫無
暫無

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

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