Я делаю приложение, в котором мне нужно показать один вид в ориентации portrait
и совершенно другой вид в landscape mode
(например, stocks app on iPhone
). Например, если бы я сделал приложение погоды, на портрете я хотел бы показать текущую погоду, а в пейзаже - график этой погоды. Как бы я это сделал, должен ли я сделать другой storyboard
и изменить класс размера?Как изменить вид в разных направлениях
ответ
Это называется адаптивной компоновкой. Посмотрите этот хороший учебник на Ray Wenderlich. https://www.raywenderlich.com/113768/adaptive-layout-tutorial-in-ios-9-getting-started
Адаптивная компоновка не обязательно будет ее отрезать. Моему приложению нужно было что-то похожее - и в iPad с использованием AutoLayout вы не знаете, используете ли вы классы размера. Вам нужно измерить ширину и высоту надзора.
Я был очень рад, когда Apple даже сделала то, что я сделал на WWDC 2016 («Создание приложений Adaptive, Part 2»). Они сбросили в код (IB, в то время как близко, не будет сокращать это 100%) с:
override func viewWillLayoutSubviews() {
super.viewDidLayoutSubviews()
if self.bounds.width = self.bounds.height {
// view is in landscape mode
} else {
// view is in portrait mode
}
}
Это ключ, что нужно сделать. Оттуда это зависит от ваших потребностей. Мои потребности были довольно простыми, переместите некоторые виды в нужную сторону, а не под изображение, если это пейзаж. Приложение Apple's Stock выглядит так, как будто оно также отключено от красных вещей, что легко сделать с помощью AutoLayout.
Я не пытаюсь изменить ограничения или перемещать объекты по экрану при изменении ориентации. В основном, что делать, это изменение полностью. Предположим, я создавал приложение для погоды, в портретной ориентации я хотел бы показать текущую погоду, и в ландшафте я хотел бы показать график. Как мне это сделать? @dfd – fellowProgrammer
Возможно, я вас не понимаю. В моих глазах прямо сейчас, это все та же концепция. «Смена вида полностью» подразумевает скрытие текущего представления и «скрытие» скрытого представления, которое либо перемещает объекты в виде надзора, либо - и я бы не рекомендовал этого - переключение между двумя видами (и контроллерами). – dfd
Хорошо, еще один вопрос: как сделать UIView размером с экран, поместить в него мои метки (programitacally), а затем скрыть это представление и показать другое. @dfd – fellowProgrammer
- 1. Миксин в разных направлениях?
- 2. Прокрутка игровой среды в разных направлениях
- 3. Изменить вид для разных устройств
- 4. Что происходит в разных направлениях, чем виды?
- 5. Двигаясь в разных направлениях вокруг точки (планета)
- 6. Упорядочить по дате в разных направлениях
- 7. Переключить меню в двух разных направлениях
- 8. Как отобразить подсказку инструмента в разных направлениях (в java swing)
- 9. Как перемещать несколько ячеек в разных направлениях с помощью трёх.js?
- 10. Как изменить вид в потоке
- 11. Как изменить вид в WPF?
- 12. ORDER BY на разных колонках в различных направлениях в SQLite
- 13. как изменить вид
- 14. Как изменить вид надувателя?
- 15. Как изменить вид Spinner?
- 16. Реализация пиксельных безупречных фоновых изображений в разных направлениях
- 17. Изменить вид с segue
- 18. Кнопки перемещаются в разных направлениях после изменения размера
- 19. mysql заказать по нескольким колонкам в разных направлениях
- 20. Perl :: WSDL. Сгенерированные методы в разных направлениях, чем сценарий
- 21. Изменить вид в RCP
- 22. Изменить вид в CodeIgniter
- 23. Элементы слайдов в разных направлениях влево/вправо/внизу
- 24. Изменить вид в android
- 25. jQuery: анимация двух изображений с одной функцией в разных направлениях
- 26. Такая же анимация занимает больше времени в разных направлениях
- 27. DENSE RANK в обоих направлениях
- 28. Как изменить цвет пунктирной линии на направлениях Google map v3
- 29. Как изменить вид Android Homescreen?
- 30. JTable: как изменить вид jtable
Возможный дубликат: http://stackoverflow.com/a/27643160/3400991 –
Возможный дубликат [Настройка ориентации устройства в Swift iOS] (http://stackoverflow.com/questions/25651969/setting-device-orientation- in-swift-ios) – Vinodh