2017-10-07 3 views
6

少なくともXCodeでUse Safe Area Layout Guidesをトリガーするとエラーが発生するようですが、両方のデバイスをサポートすることはできませんか?何かアドバイス?ありがとう。同じプロジェクトでiPhone XとiOS 8をサポートすることは可能ですか?

+0

全くありません、私はチェックを行くことにしたまで、私は苦労しました。 iOS 8をまだ自分のアプリに使用していたユーザーは何人いたのですか? – MwcsMac

答えて

3

我々が何

(実際には、それは私たちが現在、カーン・アカデミーのアプリに持っているものです。)のiOS 8の最小目標とiPhone Xをサポートするために完全に可能である私達のスウィフトにsafeAreaInsetsを適用していますそのように、#available機能を使用してコード:あなたは安全なエリアインセットを有効にするには、ストーリーボードのチェックボックスを使用するかどうかを討論しているように、あなたの質問から

public override func safeAreaInsetsDidChange() { 
    if #available(iOS 11.0, *) { 
     super.safeAreaInsetsDidChange() 
     self.contentCatalogHeaderView?.safeAreaInsetsTopOverride = safeAreaInsets.top 
     self.collectionViewLayout.safeAreaInsetsTop = safeAreaInsets.top 
    } 
} 

は、それが聞こえます。ストーリーボードがiOS 8をサポートすることが可能かどうかはわかりませんが、セーフエリアのインセットが有効になっていると(私はそれが不可能だと思われます)。ただし、常にレイアウト制約への参照を保存し、上記の#available関数を使用してコード内の定数を更新することはできます。

は(Objective-Cで、コードはほとんど同じに見える、ちょうどこのようにそれをフォーマット:私は答えを行っているテストの全てにおいて

- (void)viewSafeAreaInsetsDidChange { 
    if (@available(iOS 11.0, *)) { 
     [super viewSafeAreaInsetsDidChange]; 
     [self.view setNeedsLayout]; 
    } 
} 
関連する問題