Why changing the UILabel text fires a viewDidLayoutSubviews event?

1.7k views Asked by At

There are lots of viewDidLayoutSubviews events fired in my ViewController. Eventually I narrowed down to the single line of code which triggers the event:

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

Its a UILabel in a subview added to self.view of the ViewController. Why changing the text of a UILabel will cause boundary changes? In viewDidLayoutSubviews doc:

When the bounds change for a view controller's view, the view adjusts the positions of its subviews and then the system calls this method.

p.s. I am sure the debugLabel font size is small enough to fit in its frame.

1

There are 1 answers

2
Guy Kogus On

I believe this has to do with auto-layout. If a view resizes then the constraints need to be checked throughout the rest of the view hierarchy to ensure that they are satisfied.