2011-04-07 61 views
19

我的视图中有一个UIButton,它显示“STOP”。按下时,它应该(停止播放,当然,)将其标签更改为“RTN TO ZERO”。这是简单的:UIButton上的文本更改不会出现

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

然而,变化只出现的一瞬间。它不坚持。我假设按钮(按下时突出显示)接受并显示新标签,但稍后突出显示才会反转,将按钮恢复到按下之前的样子,而不遵守标签文本更改。 该按钮是在IB中构思的,而不是以编程方式。

我觉得很蠢。有人可以请指点我正确的方向吗?

+0

你有哪些事件代码可以改变标题?你能否提供更多的细节? – 2011-04-07 13:40:33

回答

51

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

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

而不是直接改变titleLabel使用setTitle:forState:方法的text属性设置在不同的国家称号。请检查manual了解可用状态的详细信息。

+1

你说得对。阅读能力是一个优势。正如我所说,我感到愚蠢。非常感谢你! – 2011-04-08 08:21:16

+4

就像一个侧面说明;如果您在IB中使用属性文本,则此方法不起作用。你必须使用setAttributedTitle:forState :. – 2013-01-31 10:12:24

1

斯威夫特版本

myButton.setTitle("button text", forState: UIControlState.Normal) 

使用setAttributedTitle:forState归因文本。有关如何在Swift中创建属性字符串,请参阅here