美文网首页
iOS 13 更改状态栏背景

iOS 13 更改状态栏背景

作者: 贝勒老爷 | 来源:发表于2019-11-07 10:04 被阅读0次

项目中需要更改 statusBar 背景色,可是 iOS 13 statusBar 找不到了,原来使用的 kvc [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"] 会造成崩溃。
针对 iOS 13 做一下适配,自己手动添加一个 statusBar:

-(UIView *)statusBarUIview{
    if(@available(iOS 13,*)){
        
        int tag = 13004352;
        
        UIWindow *window = [UIApplication sharedApplication].delegate.window;
        UIView *view = [window viewWithTag:tag];
        if (view) {
            return view;
        }else{
            CGRect statusBarRect = [UIApplication sharedApplication].statusBarFrame;
            UIView *statusBarView = [[UIView alloc]initWithFrame:statusBarRect];
            statusBarView.tag = tag;
            [window addSubview:statusBarView];
            return statusBarView;
        }
    
    }else{
        UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
        if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
            return statusBar;
        }
    }
    
    return nil;
}

iOS 13 之前还是原来的方法,iOS 13 之后自己手动配置一个。

相关文章

网友评论

      本文标题:iOS 13 更改状态栏背景

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