2017-09-23 26 views

答えて

3

現在のウィンドウのセーフエリアのインセットを次のコードで印刷すると、上部と下部のセーフエリアのポイント寸法を取得できます。

if #available(iOS 11.0, *) { 
    UIApplication.shared.keyWindow?.safeAreaInsets 
    // ... 
} 

先頭領域に44点長さで、底面積は34点長さです。

@ 1X =指す @ 2X =点導入* 2 @ 3X =ポイント* 3

+0

  • ボトム0ptあなたは44でどのようにピクセルで知っていますか?私がsafeareainsets.topに電話すると、それは私に与えられます88 –

  • 2

    Xcodeの9 safe-:

    は、デバイスの画面解像度に依存するであろう実際のピクセル寸法を取得しますエリアレイアウトガイドをインターフェイスビルダに表示します。ストーリーボードのファイルインスペクタに移動して、それらを有効にすることができます。 ticking the checkbox labelled "Use Safe Area Layout Guides"

    そこから、ルートビューに制約を追加するたびに、代わりに安全領域に制約するオプションがあります。 In this photoの場合、オレンジ色のビューは安全領域のエッジに制限され、青色のビューはスーパービューのエッジに制限されます。

    • オレンジビューのフレーム:(0.0、44.0、375.0、734.0)
    • ブルービューのフレーム:(0.0、0.0、375.0、812.0)

    そこから私たちは、44個のピクセルがあったと計算することができます上部の安全領域には34ピクセルが下部領域に使用されました。

    +0

    44でどのようにピクセルで知っていますか?私がsafeareainsets.topに電話すると、それは私に与えられる88 –

    +1

    @PabloMartinezあなたはあなたのUIにナビゲーションバーがあるので、88ピクセルを得る理由があります。セーフエリアレイアウトガイドは、ナビゲーションバーやタブバーなどの他のUIエレメントによって妨げられないことが保証されています。詳細は、今年のWWDCから[Interface Builderの自動レイアウトテクニック](https://developer.apple.com/videos/play/wwdc2017/412/)を参照してください。 –

    +0

    風景モードでも同様の画像がありますか? –

    0

    TL; DR:ポートレートで

    • トップ:44pt
    • 下:34pt
    • 左/右:

    風景の中に

    0pt
    • トップ:
    • 左/右を24pt:44pt

    出典:iOSのシミュレータで、この寸法と...練習について20のリソースを掘り下げる:)

    関連する問題