iOS顶部有蓝条导致界面UI问题

正在打电话或者正在使用定位等都会使iPhone状态栏出现蓝条,并多出20个像素点

1.在使用App的过程中,出现蓝条,我们可以通过监听状态栏高度的改变来适配我们的UI

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(statusBarChanged)  
                                             name:UIApplicationWillChangeStatusBarFrameNotification 
                                             object:nil];

- (void)statusBarChanged{
//重新适配有问题的UI
}

这种处理使用了通知,所以只能在当前页面注册了通知的情况下,才能监听到状态栏的改变,如果先出现蓝条,再进入页面,因为通知还没来得及注册,系统就发送了通知,所以并没有监听到状态栏的改变。

2.先出现蓝条,再进入页面的情况下适配UI

#define SafeStatusBarHeight ([UIApplication sharedApplication].statusBarFrame.size.height==40?20:0)//设置为全局的

//使用
_selectedPanel.frame = CGRectMake(0, SafeStatusBarHeight, 200.0f, 54.0f);

获取状态栏的高度,如果高度是40就说明页面被向下挤压栏20个像素点,如果高度是20,就是正常的
在设置控件的frame的时候,加入SafeStatusBarHeight就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容