【发布时间】:2012-09-04 14:42:11
【问题描述】:
今天我有点困惑地发现,在尝试更改 UIButton 上显示的文本时,以下内容不起作用。
// 001
[[[self button] titleLabel] setText:@"Peanuts"];
我想我知道为什么,但我只是想在这里确认一下我的想法。 001 确实设置了 titleLabel 文本属性,但作为 UILabel(UIButton 的子视图)它不会导致 UI 被重绘。这会导致 UILabel 文本属性的内部更改,但遗憾的是 UI 中没有视觉变化。
// 002
[[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];
似乎 setTitle:forState 方法是正确的方法,它具有需要状态的额外开销,但确实会调用 UI 重绘,因为它直接在 UIButton 上调用。我的问题是,002 是正确的方法吗,除非我做错了什么?
【问题讨论】:
标签: iphone objective-c uibutton uilabel