文章目录
iOS 15 之后导航栏背景色的设置
iOS 13 开始新增了 standardAppearance 和 scrollEdgeAppearance 属性,不过在iOS 15(xcode13)的时候才真正需要适配。带滑动视图的页面,当滑动到最顶部时显示后者的属性,其他时候显示前者的属性。不带滑动视图的页面只显示前者的属性。
if (@available(iOS 15.0, *)) {
UINavigationBarAppearance *barAppearance = [[UINavigationBarAppearance alloc] init];
barAppearance.backgroundImage = backgroundImage;
barAppearance.shadowImage = shadowImage;
self.navigationController.navigationBar.standardAppearance = barAppearance;
self.navigationController.navigationBar.scrollEdgeAppearance = barAppearance;
}
1、状态栏设置
typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
UIStatusBarStyleDefault = 0, // Automatically chooses light or dark content based on the user interface style
UIStatusBarStyleLightContent API_AVAILABLE(ios(7.0)) = 1, // Light content, for use on dark backgrounds
UIStatusBarStyleDarkContent API_AVAILABLE(ios(13.0)) = 3, // Dark content, for use on light backgrounds
UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
UIStatusBarStyleBlackOpaque NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
} API_UNAVAILABLE(tvos);
UIStatusBarStyleDefault // 默认状态
UIStatusBarStyleLightContent // 状态栏文本和图标为白色
UIStatusBarStyleDarkContent // 状态栏文本和图标为黑色
另外两个已弃用
1.1、没有导航栏
在 ViewController 中,使用 -(UIStatusBarStyle)preferredStatusBarStyle 方法设置
// ViewController
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
1.2、有导航栏
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault = 0,
UIBarStyleBlack = 1,
UIBarStyleBlackOpaque <