2016-10-28 3 views
0

Я делаю приложение, в котором мне нужно показать один вид в ориентации portrait и совершенно другой вид в landscape mode (например, stocks app on iPhone). Например, если бы я сделал приложение погоды, на портрете я хотел бы показать текущую погоду, а в пейзаже - график этой погоды. Как бы я это сделал, должен ли я сделать другой storyboard и изменить класс размера?Как изменить вид в разных направлениях

+0

Возможный дубликат: http://stackoverflow.com/a/27643160/3400991 –

+0

Возможный дубликат [Настройка ориентации устройства в Swift iOS] (http://stackoverflow.com/questions/25651969/setting-device-orientation- in-swift-ios) – Vinodh

ответ

1

Адаптивная компоновка не обязательно будет ее отрезать. Моему приложению нужно было что-то похожее - и в 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.

+0

Я не пытаюсь изменить ограничения или перемещать объекты по экрану при изменении ориентации. В основном, что делать, это изменение полностью. Предположим, я создавал приложение для погоды, в портретной ориентации я хотел бы показать текущую погоду, и в ландшафте я хотел бы показать график. Как мне это сделать? @dfd – fellowProgrammer

+0

Возможно, я вас не понимаю. В моих глазах прямо сейчас, это все та же концепция. «Смена вида полностью» подразумевает скрытие текущего представления и «скрытие» скрытого представления, которое либо перемещает объекты в виде надзора, либо - и я бы не рекомендовал этого - переключение между двумя видами (и контроллерами). – dfd

+0

Хорошо, еще один вопрос: как сделать UIView размером с экран, поместить в него мои метки (programitacally), а затем скрыть это представление и показать другое. @dfd – fellowProgrammer

Смежные вопросы