2011-08-09 29 views
2

是否可以通过点语法更改UIButton标题标签文本?为什么不能通过点语法改变UIButton文本?

但是这一次确实:如果我通过点语法做到这一点的文本没有改变

[self.myButton setTitle: @"Yep" forState: UIControlStateNormal]; 

文本变化适用于纯UILabels,是UIButton的一个特例还是什么?

回答

10

这是因为可以针对多个不同状态(正常,突出显示等)的UIButton更改文本。苹果只是选择了要求明确的代码来设置文本。如果你真的想要,你可以创建一个类来实现它。

+0

嗯,也许有一些逻辑在:)作为类别我不舒服使用它们,因为恕我直言,它只是使代码更难以阅读以后甚至其他人。例如,如果你正在构建一个大型应用程序,那么你有很多不同的类文件,助手等等。如果你把某些方法放在类别中,那么你需要有一个明确的文件命名约定来找到“隐藏和自定义”功能。这只是我的意见,你的是什么? – Centurion

+0

老实说,我很擅长在必要时创建类别。当然,通过在类上添加数十个或数百个辅助方法,这可能很容易被采用。如果你进入连锁店,这甚至会产生意想不到的后果。与往常一样,如果您练习为任何潜在令人不安的代码编写深思熟虑的评论,则捍卫选择会容易得多。另外,Xcode使用Command + Click找到方法的声明变得轻而易举。 – FreeAsInBeer

+0

同意Command + Click :)好的,谢谢GL。 – Centurion

1

的UIButton的可以重新配置他们的头衔任何的UIControlState的(在这里看到:UIControlState)。

由于使用点语法不会为任何特定状态设置标题,因此UIButton可能会重新配置UIControlStateNormal的标题,该标题设置为空。

相关问题