美文网首页
iPhone刘海屏适配

iPhone刘海屏适配

作者: Spencer_wu | 来源:发表于2018-10-22 15:28 被阅读0次

    iPhone XR正式售卖,屏幕黑框堪比那个温暖潮湿的地方,瞬间失去了购买欲。

    目前为止,苹果一共生产了4款刘海屏手机,iPhone X,iPhone XS, iPhone XS Max和iPhone XR。如何适配网上也有很多方案,最常见的方案就是匹配手机屏幕尺寸。众所周知,苹果和三星是两家冷兵器制造商,一家做剑,一家做盾,剑越来越长,盾越来越宽。因此在今年3款新机出现后,根据屏幕尺寸判断的方法也就失效了。

    另一种比较常见的方法,是直接判断当前机器型号,是iPhoneX的情况下设置边距,但每一次发布新手机,都要追加判定条件。

    其实苹果准备好了一个方法,系统判定当前边距,不过只在iOS11及以后开始生效。

    - (void)viewSafeAreaInsetsDidChange NS_REQUIRES_SUPER API_AVAILABLE(ios(11.0), tvos(11.0));

    这时候再使用Xcode 9推出的API@available即可。

    @available(版本,平台)

    - (void)viewSafeAreaInsetsDidChange {

        [super viewSafeAreaInsetsDidChange];

        // safeArea边距

        CGFloat safeTop = 0;

        CGFloat safeBottom = 0;

        CGFloat safeLeft = 0;

        CGFloat safeRight = 0;

        // iOS11 中,获取边距

        if (@available(iOS 11.0, *)) {

            safeTop = self.view.safeAreaInsets.top;

            safeBottom = self.view.safeAreaInsets.bottom;

            safeLeft = self.view.safeAreaInsets.left;

            safeRight = self.view.safeAreaInsets.right;

        }

        NSLog(@"%f---%f---%f---%f",safeTop,safeBottom,safeLeft,safeRight);

    }

    另外一种刘海屏处理方法

    static inline BOOL isIPhoneXSeries() {

        if (@available(iOS 11.0, *)) {

            UIWindow *mainWindow = [[[UIApplication sharedApplication] delegate] window];

            if (mainWindow.safeAreaInsets.bottom > 0.0) {

                return YES;

            }

        }

        return NO;

    }

    相关文章

      网友评论

          本文标题:iPhone刘海屏适配

          本文链接:https://www.haomeiwen.com/subject/xsrgzftx.html