UIButton.setTitle不会将UIButton.titleLabel.text设置为空字符串

时间:2018-07-17 09:25:13

标签: ios swift uibutton

这不是问题,但是我发现UIButton.setTitle并未将UIButton.titleLabel.text设置为""。因此,如果要将UIButton.titleLabel.text设置为"",则应在UIButton.titleLabel.text = ""之后使用UIButton.setTitle("", for: .normal)

在操场上,它看起来像:

import UIKit

let button = UIButton()
button.setTitle("1", for: .normal)
print(button.titleLabel?.text ?? "no value")
//print 1
button.setTitle("2", for: .normal)
print(button.titleLabel?.text ?? "no value")
//print 2
button.setTitle("3", for: .normal)
print(button.titleLabel?.text ?? "no value")
//print 3
button.setTitle("", for: .normal)
print(button.titleLabel?.text ?? "no value")
//print 3 not ""
button.titleLabel?.text = ""
print(button.titleLabel?.text ?? "no value")
//print ""

但是,当然button.titleLabel?.text = ""仅在button.setTitle("", for: .normal)之后才起作用

button.setTitle("3", for: .normal)
button.titleLabel?.text = ""
print(button.titleLabel?.text ?? "no value")
//print 3

我不明白为什么这样做会如此。也许有人可以解释为什么?

1 个答案:

答案 0 :(得分:1)

您可以看到以下有关按钮标题集的苹果说明。看到红色标记的矩形。

发件人是UIButton的实例

enter image description here

根据Apple文档:

  

要设置标签的实际文本,请使用setTitle(_:for:)。

     

button.titleLabel.text不允许您设置文本。

我希望这会对您有所帮助。