1.如果导航栏有卡顿或者闪屏效果出现,多半是因为导航栏背景为透明色所致,可以给导航栏设置主题色,比如已白色为例
self.navigationController.navigationBar.backgroundColor = [UIColor whiteColor];
2.但是即使上述设置后,依然发现statusBar的颜色没有改变,查看图层发现 statusBar的frame并不在上述设置的范围内,除去网上各种系统方法的以及plist配置文件的搭配设置,本人提供以下边便捷设置方法
创建一个UIView,
设置该UIView的frame.size 和statusBar大小一样,
设置该UIView的frame.origin 为{0,-20},
设置该UIView的背景色为你希望的statusBar的颜色,
在navigationBar上addSubView该UIView即可。