美文网首页
iOS顶部有蓝条导致界面UI问题

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

作者: 啊_哈 | 来源:发表于2018-05-25 15:03 被阅读0次

    正在打电话或者正在使用定位等都会使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就可以了

    相关文章

      网友评论

          本文标题:iOS顶部有蓝条导致界面UI问题

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