内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

iOS状态栏frame计算问题

2018-06-08 17:24 出处:清屏网 人气: 评论(0

我们知道除了iPhoneX以外的设备导航栏默认高度都是20,当然苹果也为我们提供了计算状态栏frame的方法:

[[UIApplication sharedApplication] statusBarFrame];

这个方法在正常情况下返回的状态栏高度也是20,但当正在通话时,或者后台有APP正在使用定位功能时,顶部会出现两种提示条:

正在通话.png

后台有APP使用定位.jpeg

当顶部有这两种提示条出现时,上面的statusBarFrame方法返回的状态栏高度就变成了40,在手动更改顶部约束的时候就会出现问题,最后没找到解决方法,只能手动改回20,感觉是有那么点low。

if (iPhoneX) {//x上不做任何改变
        return rectStatus.size.height + rectNav.size.height;
    } else {
        if (rectStatus.size.height == 40) {//顶部有导航或者电话条时,状态栏高度系统方法计算错误,手动置为20
           CGFloat fStatusBarHeight = 20;
            return fStatusBarHeight + rectNav.size.height;
        } else {
            return rectStatus.size.height + rectNav.size.height;
        }
    }
分享给小伙伴们:
本文标签: frameiOS状态栏

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号