web-dev-qa-db-ja.com

横向きのiPhone4、5、6で幅と高さがコンパクトな理由

私はiOS開発に不慣れで、適応性とレイアウトを勉強しているだけで、少し混乱してしまいます。

ドキュメントによる

iOSは2つのサイズクラスを定義しています。

  1. 通常:-それは広大な空間に関連付けられています
  2. コンパクト:-制約されたスペースに関連付けられています

他の参照による:

  1. 縦向きのすべてのiPhone(左上)は、通常の高さとコンパクトな幅を持っています Iphone in portrait

  2. 横向きのiPhone4、5、6は、高さと幅がコンパクトです。 iphones in landscape orientation

  3. しかし、iPhone 6 Plusの場合、それはコンパクトな高さと横向きの規則的な幅を持っています。

    Iphone 6 plush in landscape

私の混乱は:

  • iPhone 4,5,6は、縦向きモードでは通常の高さとコンパクトな幅がありますが、逆にしたときに横向きで通常​​の幅とコンパクトな高さがないのはなぜですか?
  • もしそうなら、なぜiPhone 6plusはそれらとは違うのですか?画面がiPhone6より0.8インチ大きいからですか?それは重要ですか?

よろしくお願いします!、編集者へようこそ!

これまでのところ、技術的には開発に影響がないことはわかっていますが、これらのことを明確にしたいと思います。

28
Shree Krishna

もしそうなら、なぜiPhone 6plusはそれらとは違うのですか?画面がiPhone6より0.8インチ大きいからですか?それは重要ですか?

スプリットビューコントローラーを使用している場合に重要です。 iPhone 5と6で同じ折りたたまれたアスペクトがある場合、iPhone 6以降では、マスタービューコントローラーと詳細ビューコントローラーが横向きで分割されて表示されます。

Size class illustration

縦向き横向きの両方で通常の高さと幅のサイズのクラスがあるため、iPadではさらに役に立たないように見えます。

重要なのは、regular sizeクラスがある場合、compact sizeclassよりも多くのコンテンツをレイアウトして表示する必要があるということです。

ただし、サイズクラスは画面ではなく、ビューコントローラに関連しています。

マスターとディテールビューコントローラーを搭載したiPadをお持ちの場合、マスタービューコントローラーはコンパクトな幅/通常の高さで、ディテールビューコントローラーは通常の幅/通常の高さです。

子ビューコントローラのサイズクラスを次のようにオーバーライドすることで変更できます。

-(void)setOverrideTraitCollection:(UITraitCollection *)collection forChildViewController:(UIViewController *)childViewController

そして

-(UITraitCollection *)overrideTraitCollectionForChildViewController:(UIViewController *)childViewController.

IOS9でアプリをコンパクト新しいマルチタスク機能で幅(画面の右からスライド)で実行できるようになったため、これはiPadの重要な概念です。

2
Crazyrems