【问题标题】:Text change on UIButton doesn't stickUIButton 上的文本更改不粘
【发布时间】:2011-07-31 13:30:32
【问题描述】:

我的视图中有一个 UIButton,上面写着“停止”。按下时,它应该(当然,停止播放,并且)将其标签更改为“RTN TO ZERO”。这很简单:

stopButton.titleLabel.text = @"RTN TO ZERO";

但是,更改只会出现一瞬间。它不粘。我假设按钮(按下时突出显示)接受并显示新标签,但不知何故,突出显示仅在稍后反转,将按钮恢复到按下之前的外观,不尊重标签文本更改。 该按钮是在 IB 中构思的,而不是以编程方式。

我觉得自己很愚蠢。有人可以指出我正确的方向吗?

【问题讨论】:

  • 你在哪些事件中有改标题的代码?你能提供更多细节吗?

标签: cocoa-touch ios ipad interface-builder uibutton


【解决方案1】:

在按钮处理程序中,试试这个:

[stopButton setTitle:@"RTN TO ZERO" forState:UIControlStateNormal];

不要直接更改titleLabeltext 属性,而是使用setTitle:forState: 方法来设置不同状态的标题。请查看manual 了解可用状态的详细信息。

【讨论】:

  • 你是对的。阅读能力是一个优势。正如我所说,我觉得自己很愚蠢。非常感谢!
  • 作为旁注;如果您在 IB 中使用属性文本,则此方法不起作用。你必须使用 setAttributedTitle:forState:.
【解决方案2】:

Swift 版本

myButton.setTitle("button text", for: UIControl.State.normal)

使用setAttributedTitle:for 作为属性文本。请参阅here 了解如何在 Swift 中制作属性字符串。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2017-10-15
    • 1970-01-01
    相关资源
    最近更新 更多