Is it possible to support iPhone X and iOS 8 in one project?

It seems like an error will occur "Safe area layout guide before ios 9".if I run Use Safe Area Layout Guidesin the smallest Xcode, does this mean that support for both devices is not possible? Any advice? Thank you

+6
source share
1 answer

You can fully support iPhone X with a minimal iOS 8 goal. (Actually, this is what we now have in the Khan Academy app.)

What we do is apply safeAreaInsetsSwift in our code using a function #available, for example:

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

, , , , . , Storyboard iOS 8, ( , ). , , #available.

( Objective-C , :

- (void)viewSafeAreaInsetsDidChange {
    if (@available(iOS 11.0, *)) {
        [super viewSafeAreaInsetsDidChange];
        [self.view setNeedsLayout];
    }
}
+3

All Articles