zoukankan      html  css  js  c++  java
  • iOS7 status bar 样式问题

    在ios7中,有如下status bar 样式

    typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
        UIStatusBarStyleDefault                                     = 0, // Dark content, for use on light backgrounds
        UIStatusBarStyleLightContent     NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark 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,
    };

    其实,也就2种,一种是UIStatusBarStyleDefault,字体为黑色,另一种是UIStatusBarStyleLightContent字体为白色。

    当设置View controller-based status bar appearance为yes后,我们就可以通过- (UIStatusBarStyle)preferredStatusBarStyle来设置status bar样式了。

    但是有许多中需要考虑的情况。

    1.使用UITabBarController

    使用UITabBarController后,status bar样式会根据每个子controller的- (UIStatusBarStyle)preferredStatusBarStyle返回值来定,这也是符合常理的。UITabBarController中的- (UIStatusBarStyle)preferredStatusBarStyle不会被访问。

    2.使用UINavigationController

    UINavigationController和UITabBarController不同。使用UINavigationController后,status bar样式会根据UINavigationController的- (UIStatusBarStyle)preferredStatusBarStyle返回值来定,各个子controller的- (UIStatusBarStyle)preferredStatusBarStyle不会被访问。

    3.在UITabBarController中包含UINavigationController

    根据上面的2点,如果你需要在这种条件下更改status bar的样式,你需要更改的是每个UINavigationController的- (UIStatusBarStyle)preferredStatusBarStyle方法。

    先写到这里,待续。。。

  • 相关阅读:
    【洛谷P1330】封锁阳光大学
    【洛谷P1087】FBI树
    hdu 4504(动态规划)
    hdu 4503(数学,概率)
    hdu 5400(思路题)
    hdu 5701(区间查询思路题)
    hdu 4502(DP)
    hdu 1401(单广各种卡的搜索题||双广秒速)
    hdu 1258(DFS)
    hdu 1254(搜索题)
  • 原文地址:https://www.cnblogs.com/breezemist/p/3727902.html
Copyright © 2011-2022 走看看