Когда размер подпредставления изменится, позвоните [[self superview] setNeedsLayout]
. В вашем суперпредставлении внедрите -layoutSubviews
, чтобы сделать фактический макет. Вам придется все самому подсчитать. Фиксированные / гибкие поля относятся к изменению размера суперпредставления, а не к одноранговым представлениям. Значение по умолчанию -layoutSubviews
вообще ничего не делает; он просто вызывается в подходящее время.
Если вам нужно, чтобы макет происходил в определенный момент, вы можете позвонить -layoutIfNeeded
на себя или своего супервизора. Прочитайте документы о том, как работает этот метод. Вообще говоря, вам не нужно это называть. Обычно он вызывается в соответствующее время, если вы просто используете -setNeedsLayout
.