Это действительно зависит от того, что вы выкладываете.
Если вы посмотрите на приложение Apple Settings, вы увидите, что они используют табличные представления для макета с настраиваемыми ячейками для большинства строк. При этом вы можете позволить простому интерфейсу вращаться довольно дешево, просто заполняя ширину ячеек. Это относится даже к таким вещам, как Почта, где в каждой строке есть ячейки для редактирования текста. И таблицы могут быть прозрачными, с видимыми только кнопками или метками, поэтому они не похожи на таблицы.
Вы можете получить много прибыли из autoresizingMask каждого UIView. Если у вас есть один или несколько элементов, которые могут иметь гибкую высоту, то обычно вы можете получить макет интерфейса, который выглядит хорошо в любой ориентации. В зависимости от того, как это выглядит, иногда вы можете просто прикрепить все к вершине.
В редких случаях, если все элементы интерфейса помещаются в квадрат, вы можете просто повернуть их на месте.
Есть два раза, когда вы должны явно обрабатывать изменения ориентации. Один из них - это когда при вращении вид перемещается снизу вверх. Другой случай, когда у вас есть разные изображения для каждой ориентации, например, если вы всегда хотите иметь полную ширину.
Иногда есть способы обойти оба этих варианта. Вы можете использовать растягиваемые изображения или ограничиться одним просмотром в строке. Или вы можете заблокировать ориентацию для определенных видов.
Если вам необходимо изменить макет представлений, существует явный метод layoutSubviews. Вы должны попытаться обработать все ваши условные макеты в этом одном методе. Он вызывается только при изменении границ вида, например, при повороте или если вы освободили место для клавиатуры. Создайте пользовательское представление для каждой иерархии представлений, которая должна реагировать на ротацию, и разметьте подпредставления оттуда.