Почему изменение текста UILabel вызывает событие viewDidLayoutSubviews?

Есть много viewDidLayoutSubviews События запускаются в моем ViewController. В конце концов я сузился до одной строки кода, которая вызывает событие:

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

Это UILabel в подпредставлении, добавленном к self.view ViewController. Зачем менять текст UILabel вызовет граничные изменения? В viewDidLayoutSubviews документ:

Когда границы изменяются для представления контроллера представления, представление регулирует положения его подпредставлений, и затем система вызывает этот метод.

PS Я уверен, что размер шрифта debugLabel достаточно мал, чтобы поместиться в его кадр.

1 ответ

Я считаю, что это связано с автоматическим макетом. Если размер представления изменяется, необходимо проверить ограничения во всей остальной иерархии представления, чтобы убедиться, что они удовлетворены.

Другие вопросы по тегам