【问题标题】:Setting titleLabel for UIButton为 UIButton 设置 titleLabel
【发布时间】:2012-09-04 14:42:11
【问题描述】:

今天我有点困惑地发现,在尝试更改 UIButton 上显示的文本时,以下内容不起作用。

// 001
[[[self button] titleLabel] setText:@"Peanuts"];

我想我知道为什么,但我只是想在这里确认一下我的想法。 001 确实设置了 titleLabel 文本属性,但作为 UILabelUIButton 的子视图)它不会导致 UI 被重绘。这会导致 UILabel 文本属性的内部更改,但遗憾的是 UI 中没有视觉变化。

// 002
[[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];

似乎 setTitle:forState 方法是正确的方法,它具有需要状态的额外开销,但确实会调用 UI 重绘,因为它直接在 UIButton 上调用。我的问题是,002 是正确的方法吗,除非我做错了什么?

【问题讨论】:

    标签: iphone objective-c uibutton uilabel


    【解决方案1】:

    你是对的。

    [[self button]setTitle:@"Peanuts" forState:UIControlStateNormal];
    

    是按钮标题的设置方式。这使您可以控制按钮在其所有不同控制状态下的外观。

    来自文档:

    一般来说,如果没有为状态指定属性,则默认为 使用 UIControlStateNormal 值。如果值为 未设置 UIControlStateNormal,则该属性默认为 系统价值。因此,您至少应该将值设置为 正常状态。

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 2018-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多