Uiviewcontroller Вопрос ротации
-
12-10-2019 - |
Вопрос
У меня есть главное меню в моем приложении, поддерживающем только режим ландшафта. Я внедряю ограничение ландшафта путем настройки UIRootViewController::shouldAutorotateToInterfaceOrientation:...
И у меня есть еще одна сцена с поддержкой портретного режима. Таким образом, проблема появляется, когда я перехожу из другой сцены в главное меню в портретном режиме: приложение не вращается в ландшафт автоматически, и я не могу найти метод кода, чтобы вручную повернуть его.
Есть решение? Было бы благодарно.
РЕДАКТИРОВАТЬ: Извините, я забыл добавить детали. RootViewController распространен для меню и другой сцены. И более того, эти сцены находятся в одном общем взгляде (мое приложение использует OpenGL), поэтому, прежде чем я введу меню с портретной сцены, я установил UIRootViewController::shouldAutorotateToInterfaceOrientation:
Чтобы вернуть да только для ландшафта.
Решение
Если ваша другая сцена с поддержкой портретной поддержки контролируется другим UiviewController, то вы можете использовать это контроллер этого представления. Во многих случаях этого должно быть достаточно. Конечно, если вам нужно сделать какую -то причудливую ротацию для какого -то контроллера представления, но не для других, то все становится немного сложнее.
Другие советы
Нет простого способа сделать это, за исключением [uidevice setorientation:], который не открыт для разработчиков и приводит к отказу от приложения Apple.
Вы можете применить вращение на свой слой, который создаст тот же эффект.
myview.layer.transform = CATransform3DMakeRotation(M_PI/2, 0.0f, 0.0f, 1.0f);