2016-10-28 14 views
0

portraitの向きと全く異なるビューをlandscape modestocks app on iPhoneなど)に表示する必要があるアプリケーションを作成しています。たとえば、天気アプリを作った場合、肖像画では現在の天気を表示し、横ばいではその天気のグラフを表示します。私はこれをどのように達成するのですか?別のstoryboardを作り、サイズクラスを変えなければなりませんか?異なる方向のビューを変更する方法

+0

可能な複製:http://stackoverflow.com/a/27643160/3400991 –

+0

[Swift iOSでのデバイスの向きの設定]の可能な複製(http://stackoverflow.com/questions/25651969/setting-device-orientation- – Vinodh

答えて

1

アダプティブレイアウトでは必ずしもカットされません。私のアプリにも同様のものが必要でした。そして、AutoLayoutを使ったiPadでは、サイズクラスを使用しているかどうかは分かりません。スーパービューの幅と高さを測定する必要があります。

アップルがWWDC 2016(「Making Apps Adaptive、Part 2」)でやったことをしても非常に満足しました。これを行うためにキーものです

override func viewWillLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    if self.bounds.width = self.bounds.height { 
     // view is in landscape mode 
    } else { 
     // view is in portrait mode 
    } 
} 

:彼らは、と(クローズながら、それを100%カットしないであろう、IB)コードに落としました。そこから、それはあなたのニーズに依存します。私のニーズはかなりシンプルで、風景の場合は画像ビューの下でなく、右側にいくつかのビューを移動します。 AppleのStock appは、AutoLayoutを使って簡単に行うことができます。

+0

方向が変更されたときに、制約を変更したり、画面の周囲にオブジェクトを移動しようとしていません。基本的にビューを完全に変更するのは何ですか?私が天気アプリを作っていたとしましょう。縦向きでは現在の天気を表示したいと考えています。風景ではグラフを表示したいと考えています。どうすればいい? @dfd – fellowProgrammer

+0

私はあなたを誤解しているかもしれません。今私の目では、それはまだ同じ概念です。 「ビューを完全に変更する」には、現在のビューを隠し、隠れたビューを非表示にすることが含まれます。サブビューを移動するか、2つのビュー(およびコントローラ)の間でセグリングすることをお勧めしません。 – dfd

+0

さて、ちょうどもう1つの質問私はどのようにUIViewの画面のサイズは、(programitacally)に私のラベルを入れて、そのビューを非表示にし、別のものを表示するだろう。 @dfd – fellowProgrammer

関連する問題