Пара указателей:
Вы можете использовать маски с автоматическим изменением размера, чтобы определить, что происходит с вашими видами при изменении их границ (т. Е. При изменении ориентации). Таким образом, UIViewAutoresizingFlexibleWidth
означает, что ваш вид будет «растягиваться» пропорционально суперпредставлению при изменении границ. UIViewAutoresizingFlexibleLeftMargin
означает, что ваш вид будет эффективно выровнен по правому краю, так как левое поле будет регулироваться в соответствии с шириной и т. Д. И т. Д.
Иногда масок с автоматическим изменением размера недостаточно - возможно, вам придется изменить содержимое представления по ориентации или выполнить сложную анимацию. В этом случае вы используете метод willAnimateRotationToInterfaceOrientation
в вашем контроллере представления. Ваши подпредставления могут иметь пользовательский метод adjustForOrientation
, который вы написали и который можно вызвать при вызове willAnimateRotation...
.
Наконец, в iOS 5 вы можете фактически вкладывать контроллеры представления в контроллеры представления, и в этом случае события ориентации проходят автоматически ... но это, вероятно, излишне сложно для того, что вы пытаетесь сделать.