7

WWDC 2014 Platform State of the Union レクチャーで Apple Engineer が紹介し、iPhone サイズの UI を 、 iPad サイズのクラスを とsize classes考えることができると述べました。ただし、サイズ クラスは特定のデバイスに限定されません。それらはそれよりもはるかに一般的です。ViewController が iPhone のように見える場合 (縦横比が似ています)、コンパクトなサイズのクラスになります。compact size classregular size class

viewcontroller がどのサイズクラスを使用したかを特定の時点で確認する方法はありますか? シミュレーターのコンテンツと Interface Builder のプレビューの間に矛盾があることがわかりました。その理由を詳しく調べたいと思います。

4

1 に答える 1

11

私は現在、プログラムでサイズクラスを使用する方法を探しています。

確認する最も簡単な方法は、ビュー コントローラーの traitCollection を確認することです。

po self.traitCollection

またはトランジションを聞く:

最初に UIContentContainer プロトコルを使用します

@interface ViewController : UIViewController<UIContentContainer>

次に、willTransitionToTraitCollectionを実装します。

- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id <UIViewControllerTransitionCoordinator>)coordinator
{

}

newCollection 要素には、目的に使用できる情報があります。iPhone 6 を横向きに回転させたときに返される情報は次のとおりです。

<UITraitCollection: 0x7f9ad152f320; _UITraitNameUserInterfaceIdiom = Phone,     _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Compact, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>

そして肖像画に:

<UITraitCollection: 0x7f9ad142d770; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>

そこから、横向きでは横方向と縦方向の両方に Compact Size Class を使用し、縦向きの場合Vertical Size Class を使用することがわかります。

于 2014-09-30T17:34:59.473 に答える