Почему изменение текста UILabel вызывает событие viewDidLayoutSubviews?
Есть много viewDidLayoutSubviews
События запускаются в моем ViewController. В конце концов я сузился до одной строки кода, которая вызывает событие:
self.debugLabel.text = [NSString stringWithFormat:@"%@ - %@", key, [@(tag) stringValue]];
Это UILabel
в подпредставлении, добавленном к self.view
ViewController. Зачем менять текст UILabel
вызовет граничные изменения? В viewDidLayoutSubviews
документ:
Когда границы изменяются для представления контроллера представления, представление регулирует положения его подпредставлений, и затем система вызывает этот метод.
PS Я уверен, что размер шрифта debugLabel достаточно мал, чтобы поместиться в его кадр.
1 ответ
Я считаю, что это связано с автоматическим макетом. Если размер представления изменяется, необходимо проверить ограничения во всей остальной иерархии представления, чтобы убедиться, что они удовлетворены.