回覆列表
  • 1 # 使用者5349189082719

    狀態列的字型為黑色:UIStatusBarStyleDefault

    狀態列的字型為白色:UIStatusBarStyleLightContent

    一、在info.plist中,將Viewcontroller-basedstatusbarappearance設為NO

    狀態列字型的顏色只由下面的屬性設定,預設為白色:

    //defaultisUIStatusBarStyleDefault

    [UIApplicationsharedApplication].statusBarStyle

    解決個別vc中狀態列字型顏色不同的辦法

    1、在info.plist中,將Viewcontroller-basedstatusbarappearance設為NO.

    2、在appdelegate中:

    [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;

    3、在個別狀態列字型顏色不一樣的vc中

    -(void)viewWillAppear:(BOOL)animated{

    [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;

    }

    -(void)viewWillDisappear:(BOOL)animated

    {

    [superviewWillDisappear:animated];

    [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;

    }

    二、在info.plist中,將Viewcontroller-basedstatusbarappearance設為YES,或者沒有設定。

    Viewcontroller-basedstatusbarappearance的預設值就是YES。

    如果Viewcontroller-basedstatusbarappearance為YES。

    則[UIApplicationsharedApplication].statusBarStyle無效。

    用下面的方法:

    1、在vc中重寫vc的preferredStatusBarStyle方法。

    -(UIStatusBarStyle)preferredStatusBarStyle

    {

    returnUIStatusBarStyleDefault;

    }

    2、在viewDidload中呼叫:[selfsetNeedsStatusBarAppearanceUpdate];

    但是,當vc在nav中時,上面方法沒用,vc中的preferredStatusBarStyle方法根本不用被呼叫。

    原因是,[selfsetNeedsStatusBarAppearanceUpdate]發出後,

    只會呼叫navigationcontroller中的preferredStatusBarStyle方法,

    vc中的preferredStatusBarStyley方法跟本不會被呼叫。

    解決辦法有兩個:

    方法一:

    設定navbar的barStyle屬性會影響statusbar的字型和背景色。如下。

    //statusbar的字型為白色

    //導航欄的背景色是黑色。

    self.navigationController.navigationBar.barStyle=UIBarStyleBlack;

    //statusbar的字型為黑色

    //導航欄的背景色是白色,狀態列的背景色也是白色。

    //self.navigationController.navigationBar.barStyle=UIBarStyleDefault;

    方法二:

    自定義一個navbar的子類,在這個子類中重寫preferredStatusBarStyle方法:

    MyNav*nav=[[MyNavalloc]initWithRootViewController:vc];

    self.window.rootViewController=nav;

    @implementationMyNav

    -(UIStatusBarStyle)preferredStatusBarStyle

    {

    UIViewController*topVC=self.topViewController;

    return[topVCpreferredStatusBarStyle];

    }

  • 中秋節和大豐收的關聯?
  • photoshop怎麼做條形碼?