Cocoa - iOS - 更新UILabel的text属性需要setNeedsDisplay吗?

时间:2012-02-23 20:31:39

标签: cocoa-touch uilabel setneedsdisplay setneedsdisplayinrect

我是新手,我有一个iOS项目,我正在设置UILabel字段的text属性。

self.nameLabel.text = @"abcd";

问题

  • 我是否需要调用setNeedsDisplayInRect作为要显示的新文本值的标签?

我的理解基于一些测试:

  • 在不调用setNeedsDisplayInRect的情况下,标签的文本已更新,
  • 但我想知道这是巧合还是保证标签将显示新值而不显式调用setNeedsDisplay

由于

2 个答案:

答案 0 :(得分:1)

UILabel将在您设置text属性时执行更新所需的所有操作。其他属性相同(fonttextColor等。)关于您必须手动执行的任务(如果您不使用IB),请设置frame

答案 1 :(得分:0)

如果文本更新后标签没有刷新,则可能会充分利用您的CPU,并且以下命令将强制刷新:

self.nameLabel.text = @"abcd";
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];