为什么更改UILabel文本会触发viewDidLayoutSubviews事件?

时间:2014-11-13 15:07:28

标签: ios uiviewcontroller viewdidlayoutsubviews

我的ViewController中发生了很多viewDidLayoutSubviews个事件。最后,我缩小到触发事件的单行代码:

self.debugLabel.text = [NSString stringWithFormat:@"%@ - %@", key, [@(tag) stringValue]];

将子视图中的UILabel添加到ViewController的self.view。为什么更改UILabel的文本会导致边界更改?在viewDidLayoutSubviews doc:

  

当视图控制器视图的边界发生变化时,视图   调整其子视图的位置,然后系统调用它   方法

P.S。我确信debugLabel字体大小足以适合它的框架。

1 个答案:

答案 0 :(得分:1)

我认为这与自动布局有关。如果视图调整大小,则需要在视图层次结构的其余部分中检查约束,以确保它们满足。