1 重写 preferredStatusBarStyle 方法
- (UIStatusBarStyle)preferredStatusBarStyle {
if (self.tableView.contentOffset.y >= 20 * rectScale()) {
if (@available(iOS 13.0, *)) {
return UIStatusBarStyleDarkContent;
} else {
return UIStatusBarStyleDefault;
}
}
return UIStatusBarStyleLightContent;
}
2 在需要修改样式的地方调用
[self setNeedsStatusBarAppearanceUpdate];
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[self setNeedsStatusBarAppearanceUpdate];
[self changeTopbarColorWithContentOffset:scrollView.contentOffset.y];
}
UIStatusBarStyleDefault 在亮色模式下是黑色,在暗黑模式下是白色
UIStatusBarStyleDefault
如下图所示,
分别是亮色模式和暗黑模式
亮色模式下是黑丝
暗黑模式下是白色