狀態欄的隱藏跟顯示

隱藏狀態欄有兩種方式
第一種:只在當前控制器隱藏狀態欄

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

第二種:整個項目隱藏狀態欄
在info.plist上添加一項:Status bar is initially hidden,value爲YES;
在info.plist上再添加一項:View controller-based status bar appearance,value爲NO;
這樣就整個項目的控制器狀態欄都隱藏了

狀態欄字體有系統兩種樣式
UIStatusBarStyleDefault 默認字體是黑色
UIStatusBarStyleLightContent 字體是白色

通過改變狀態欄樣式可以更改字體顏色

-(UIStatusBarStyle)preferredStatusBarStyle {

    return UIStatusBarStyleLightContent;
}

當我們把當前控制器加載到自定義的導航控制器 調用上面的方法更改狀態欄樣式沒有效果

此時我們需要在自定義的導航控制器中 加上一段代碼如下:

- (UIStatusBarStyle)preferredStatusBarStyle {
    UIViewController *topVC = self.topViewController;
    return [topVC preferredStatusBarStyle];
}

再在相應的控制器裏調用

-(UIStatusBarStyle)preferredStatusBarStyle {

    return UIStatusBarStyleLightContent;
}

這樣就可以更改狀態欄樣式

動態隱藏顯示狀態欄

定義一個BOOL值記錄 是否隱藏狀態欄

- (BOOL)prefersStatusBarHidden
{
    return self.isHidden;
}

比如有些界面滑動的時候 滑到一定距離隱藏狀態欄

在滑到指定的位置

self.isHidden = YES;
[UIView animateWithDuration:0.25 animations:^{
        [self setNeedsStatusBarAppearanceUpdate];
    }];

[self setNeedsStatusBarAppearanceUpdate];
此方法是重置狀態欄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章