我今天有点困惑,发现以下操作无法在尝试更改
UIButton
上显示文本时生效。// 001
[[[self button] titleLabel] setText:@"Peanuts"];
我想我知道原因,但我只是想在这里确认一下我的想法。001确实设置了titleLabel文本属性,但由于它是UILabel
(UIButton
的子视图),它不会导致UI重新绘制。这导致了UILabel
文本属性的内部更改,但遗憾的是UI没有出现任何可见变化。
// 002
[[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];
看起来方法setTitle:forState是正确的做法,它需要一个状态,但可以直接在UIButton
上调用以触发UI重绘。我的问题是,002是否是正确的方法来做到这一点?除非我完全错了,否则似乎是正确的。