iOS设置导航栏和状态栏

本文介绍了在iOS 15中设置导航栏和状态栏的方法,包括导航栏背景色、字体颜色、状态栏风格、以及在不同场景下的布局问题。重点讨论了translucent属性对导航栏和View布局的影响,同时提到了ScrollView布局和导航栏透明度的调整。
摘要由CSDN通过智能技术生成

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 <
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值