0

アプリに複数の子ビュー コントローラーを含む画面があります。iPhone のような小さい画面サイズでは、View Controller は互いに平らに配置されます。iPad の画面サイズでは、View Controller の 1 つが他のビュー コントローラーの上に浮かんでいます。

時々浮くView Controllerが、浮いているときに角の半径しか持たないようにしたいのです。したがって、サイズクラスが縦向きまたは横向きのiPad用のwRegular、hRegularであるかどうかに基づいて、ビューのコーナー半径を設定するために、または子ビューコントローラのviewDidLoadようなメソッドをオーバーライドすることを検討しました。overrideTraitCollection(forChildViewController:)

ただし、子View ControllerにはルートView Controllerと同じサイズのクラス値が設定されていないようで、階層を上ってparentViewControllerも、それらの値を持つView Controllerにたどり着けないようです。

子ビュー コントローラーからビュー階層の最上位の現在のサイズ クラスにアクセスするにはどうすればよいですか?

編集: UIScreen を使用して既存の回答を試しましたが、私のアプリが唯一の目に見えるアプリである場合にうまく機能します。ただし、アプリを分割画面モードで実行すると、正しくない動作が発生します。アプリが狭い場合でも、常に Regular/Regular を返します。アプリが表示されている画面の一部だけのサイズ クラスを取得するソリューションはありますか?

4

1 に答える 1

3

このように(これは現在のSwift 3です):

let tc = UIScreen.main.traitCollection

これで、 の垂直および水平サイズ クラスを調べることができますtc

于 2016-08-25T04:13:20.283 に答える