更新按钮标题

时间:2019-05-08 17:19:31

标签: ios swift uibutton

我有一个简单的按钮,最初带有emoji表情标签,而我要做的就是单击该按钮后删除emoji表情。

serviceProviderBuilder

当我单步执行代码时,语句import UIKit class ViewController: UIViewController { @IBAction func touchCard(_ sender: UIButton) { flipCard(withEmoji: "", on: sender) } func flipCard(withEmoji emoji: String, on button:UIButton){ if button.currentTitle == emoji { button.setTitle("", for: UIControl.State.normal) print("Removed emoji") } } } 被执行,但是在单击按钮后,表情符号虽然消失了,但表情并没有消失。

编辑:标题确实得到更新,但是需要几(8-10)秒钟来完成。但是,用另一个表情符号替换表情符号几乎是瞬间的!可能是什么原因导致的?我该如何解决?

PS:我正在关注CS193P讲座(讲座1)here

3 个答案:

答案 0 :(得分:1)

您可能希望使用button.title(for: .normal)而不是button.currentTitle

答案 1 :(得分:0)

如果按钮褪色,则可能已被禁用。如果将标题设置为禁用状态并执行button.setTitle("", for: UIControl.State.normal),则UIControl.State.disabled的标题将不会发生任何事情。

检查button.setTitle("", for: UIControl.State.disabled)是否能解决问题。

答案 2 :(得分:0)

您可以像下面为我添加的功能那样简单地替换您的功能。

func flipCard(withEmoji emoji: String, on button:UIButton){

        if button.currentTitle == emoji {

            button.setTitle("", for: .normal)
            button.setTitle("", for: .selected)
            button.setTitle("", for: .disabled)

            print("Removed emoji")
        }

    }

希望这样可以帮助您。