如何更改状态栏颜色使用ios与swift在互联网上的可达性?

yc0p9oo0  于 2022-12-05  发布在  iOS
关注(0)|答案(9)|浏览(142)

我想更改设备状态栏的颜色,如果已连接互联网,则状态栏颜色应变为黑色,如果未连接互联网,则颜色或状态栏应变为红色,以便在使用SWIFT处理应用程序期间指示互联网是否正常工作......帮帮我

jq6vz3qz

jq6vz3qz1#

Info.plist中,您需要将“查看基于控制器的状态栏外观”设置为布尔值。
如果将其设置为YES,则应覆盖每个视图控制器中的preferredStatusBarStyle函数。
如果将其设置为NO,则可以使用以下命令在AppDelegate中设置样式:

UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
gudnpqoy

gudnpqoy2#

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationController?.navigationBarHidden =  true

    //Status bar style and visibility
    UIApplication.sharedApplication().statusBarHidden = false
    UIApplication.sharedApplication().statusBarStyle = .LightContent
    
    //Change status bar color
    let statusBar: UIView = UIApplication.sharedApplication().valueForKey("statusBar") as! UIView
    if statusBar.respondsToSelector("setBackgroundColor:") {
        statusBar.backgroundColor = UIColor.redColor()
    }
    
}
gkn4icbw

gkn4icbw3#

在Swift和iOS9中测试
如果您使用Navigation Controllers,请将以下内容放入视图控制器类中:

override func viewDidLoad(){
    ...
    self.navigationController?.navigationBar.barStyle = .Black
}

否则,覆盖UIViewController中的preferredStatusBarStyle()

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return .LightContent
}

您可以找到更多信息here

tyg4sfes

tyg4sfes4#

适用于Swift 2.3

尝试以下方法

// Get network status
class func hasConnectivity() -> Bool {
    let reachability: Reachability = Reachability.reachabilityForInternetConnection()
    let networkStatus: Int = reachability.currentReachabilityStatus().value
    return networkStatus != 0
}

// change status bar color
var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = UIColor.blueColor()
navigationBarAppearace.barTintColor = UIColor.blueColor()

tintColor属性更改导航栏的背景颜色
barTintColor属性对
但是如果你想在运行时改变状态栏的颜色,我认为 * 更好的方法是在状态栏后面添加一个视图 *。

ibps3vxo

ibps3vxo5#

适用于雨燕3

这应该适用于Xcode 8和Swift 3

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}
tvokkenx

tvokkenx6#

正如@rckoenes评论的那样,iOS 7的状态栏是绘制在你的应用程序上的。所以你可以在状态栏区域后面放一个视图(从顶部算起20 px-状态栏的高度),并可以根据互联网连接状态的变化来控制它的背景颜色,没有其他选项可以改变状态栏的颜色。

disho6za

disho6za7#

//在您的AppDelegate.swift中,于didFinishLaunchingWithOptions中:用户界面颜色.绿色颜色()

//Optionally, if you need a specific color, how you do it with RGB:
UINavigationBar.appearance().barTintColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)

                                or

在Info.plist中,你需要将“查看基于控制器的状态栏外观”设置为布尔值。

UIApplication.sharedApplication().statusBarStyle = .LightContent
9bfwbjaz

9bfwbjaz8#

要在黑色状态栏中显示白色文本,请执行以下操作:切换检视以控制器为基础的状态列外观Info.plist中的NO在AppDelegate.swift中在didFinishLaunchingWithOptions中加入let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView statusBar.backgroundColor = UIColor.black

z6psavjg

z6psavjg9#

UIApplication.shared.setStatusBarStyle(UIStatusBarStyle.lightContent, animated: true)

相关问题