說明:只是局部修改方案
修改info.plist
View controller-based status bar appearance : YES重寫preferredStatusBarStyle 方法
- (UIStatusBarStyle)preferredStatusBarStyle {
if (self.scrollview.contentOffset.y > 0) {
return UIStatusBarStyleDefault;
}
return UIStatusBarStyleLightContent;
}
- 在需要修改的地方增加下面方法
[self setNeedsStatusBarAppearanceUpdate];
補充:
//設(shè)置狀態(tài)欄背景顏色
-
(void)setStatusBarBackgroundColor:(UIColor *)color {
if (@available(iOS 13.0, *)) {
UIView *statusBar = [[UIView alloc]initWithFrame:[UIApplication sharedApplication].keyWindow.windowScene.statusBarManager.statusBarFrame];statusBar.backgroundColor = color; [[UIApplication sharedApplication].keyWindow addSubview:statusBar]; } else { // Fallback on earlier versions UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"]; if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) { statusBar.backgroundColor = color; } }
}