2011-11-25 88 views
1
startButton.titleLabel.text = @"STOP";//do not work 

[startButton setTitle:@"STOP" forState:UIControlStateNormal];//works 

为什么当我使用点语法更改属性时,第一行代码不起作用?哪种方法更适合一般设置属性?如何更改UIButton属性

回答

1

startButton.titleLabel.text

这个代码回报,你的标题按钮即文本。 您可以通过日志打印此

NSLog(@"%@",startButton.titleLabel.text); 

[startButton的setTitle:@ “STOP” forState:UIControlStateNormal]。

这行代码设置了按钮的标题。

+0

谢谢。但有没有办法使用点语法?或者我应该总是使用set来改变属性? – user1050548

+0

这是正确的答案。您不应该直接设置标签的文字。相反,你应该使用UIButton的setTitle:forState:方法。没有办法使用属性点语法来做到这一点(不管它是否重要,无论如何)。 –

4

简单地归因于“titleLabel”被宣布为事实“只读”属性,见UIButton class reference

+0

讨论 虽然此属性是只读的,但它自己的属性是可读/写的。使用这些属性来配置按钮标签的外观。我发现在文档中,请帮助。我是初学者。 – user1050548