Как сделать так, чтобы ориентация работала в моем приложении? - PullRequest
0 голосов
/ 06 сентября 2011

Способ, которым мое приложение в настоящее время работает с ориентацией, состоит в том, что он перемещает все элементы в представлении, макет которого может меняться по мере взаимодействия с ним пользователя. У меня были многочисленные проблемы, такие как вид не появляется, вид меняется до поворота экрана и т. Д. Мне интересно, как лучше справиться с ориентацией?

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Если ландшафтный макет полностью отличается от портретного макета, я просто загружаю все подпредставления в init-метод моего UIView -подкласса и добавляю их как подпредставления.

Вся магия совершается в методе layoutSubviews, где я проверяю, в какой ориентации я нахожусь в данный момент. Никогда не вызывайте alloc, addSubview, removeFromSuperview, ... методы в layoutSubviews. layoutSubviews должен содержать только код, который устанавливает свойства frame для подпредставлений.

Ссылаясь на ваши проблемы:

представление не появляется: возможно, забыл addSubview -call

представления меняются до поворота экрана: вы, вероятно, обновляете некоторые свойства фрейма подпредставлений вне layoutSubviews -метода

0 голосов
/ 06 сентября 2011

Одна возможность - если ваше приложение работает только с одной ориентацией, запрещать изменение ориентации. Это разумный ответ, некоторые приложения можно использовать только в одном представлении.

...