iPhone刘海屏适配

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;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 未来陪伴我的你,你在哪里。 每晚迷糊的睡着,早上迷糊的看着手机,好像我的生活已被你占据了,有你的日子会是怎么样,每...
    小末日阅读 1,220评论 0 0
  • 真想把你写成诗(原创) 文/徐兴映(云南) 真想撷取一组素材 把你写成一首诗 你就是那诗里的文字 当我想你的时节 ...
    小草心语阅读 3,304评论 2 4
  • 你们猜一猜我是什么事为我自己喝彩,我来告诉你们,我以前数学和语文都老是考80多分,但是,这一次考数学语文考了一样,...
    王筱雅阅读 1,373评论 0 0
  • 第十一章 无法逃避终面对 这凌宇便是凌氏集团的公子,他们家是做投资的,他爸爸早些年间辛苦创立了这片家业,现已年老...
    离川_L阅读 2,967评论 2 1

友情链接更多精彩内容