美文网首页
iOS13+状态栏设置

iOS13+状态栏设置

作者: 守护地中海的花 | 来源:发表于2021-07-02 21:25 被阅读0次

设置plist文件方式2种

  • UIApplication设置
if (@available(iOS 13.0, *)) {
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDarkContent];
} else {
    [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
}
  • 控制器设置
- (UIStatusBarStyle)preferredStatusBarStyle
{
    [super preferredStatusBarStyle];
    if (@available(iOS 13.0, *)) {
        return UIStatusBarStyleDarkContent;
    } else {
        return UIStatusBarStyleDefault;
    }
}

plist文件作怪

image.png

View controller-based status bar appearance设置NO
或者sourceCode里面加
<key>UIViewControllerBasedStatusBarAppearance</key> <false/>

  • 如果false NO 则在单独控制器设置preferredStatusBarStyle无效 默认UIAppLication 设置的状态栏优先
  • 所以为了单独设置 还是设置YES 或者从plist文件删除这个属性
    <key>UIViewControllerBasedStatusBarAppearance</key> <true/>
    image.png
    删除也行

控制器中设置

默认黑色

TabBarController

#pragma mark - 状态栏style
- (UIStatusBarStyle)preferredStatusBarStyle
{
    return self.selectedViewController.preferredStatusBarStyle;
}

UINavigationController

#pragma mark - 状态栏style
- (UIStatusBarStyle)preferredStatusBarStyle
{
    return self.topViewController.preferredStatusBarStyle;
}

Controller

@property(nonatomic,assign)UIStatusBarStyle stausBarStyle;
- (void)createBaseProperty
{
    if (@available(iOS 13.0, *)) {
        self.stausBarStyle = UIStatusBarStyleDarkContent;
    } else {
        self.stausBarStyle = UIStatusBarStyleDefault;
    }
    //self.stausBarStyle = UIStatusBarStyleLightContent;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    [self createBaseProperty];
}
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [self setNeedsStatusBarAppearanceUpdate];
}
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self setNeedsStatusBarAppearanceUpdate];
}

#pragma mark - 状态栏
- (UIStatusBarStyle)preferredStatusBarStyle
{
    [super preferredStatusBarStyle];
    /**
     if (@available(iOS 13.0, *)) {
         return UIStatusBarStyleDarkContent;
     } else {
         return UIStatusBarStyleDefault;
     }
     */
    return self.stausBarStyle;
}
- (BOOL)prefersStatusBarHidden
{
    return NO;
}

相关文章

网友评论

      本文标题:iOS13+状态栏设置

      本文链接:https://www.haomeiwen.com/subject/bzeyultx.html