为 UIButton 设置 titleLabel
Posted
技术标签:
【中文标题】为 UIButton 设置 titleLabel【英文标题】:Setting titleLabel for UIButton 【发布时间】: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 是正确的方法吗,除非我做错了什么?
【问题讨论】:
【参考方案1】:你是对的。
[[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];
是按钮标题的设置方式。这使您可以控制按钮在其所有不同控制状态下的外观。
来自文档:
一般来说,如果没有为状态指定属性,则默认为 使用 UIControlStateNormal 值。如果值为 未设置 UIControlStateNormal,则该属性默认为 系统价值。因此,您至少应该将值设置为 正常状态。
【讨论】:
以上是关于为 UIButton 设置 titleLabel的主要内容,如果未能解决你的问题,请参考以下文章
为 UIButton isHighlighted 属性设置 Observable
无法在 Xamarin C# 中将图像设置为 UIButton