Вопрос проверяет понимание отложенного пересчёта интерфейса и оптимизации layout-цикла.
Короткий ответ
setNeedsLayout не пересчитывает layout сразу.
Он лишь помечает view как требующую обновления.
Фактический пересчёт произойдёт позже, в конце run loop.
Это позволяет системе объединять несколько изменений.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.