Я хочу изменить цвет строки состояния устройства, если интернет подключен, чем цвет строки состояния, должен стать черным, и если интернет не подключен, цвет или строка состояния должны загореться красным цветом, чтобы он указывал, что работает интернет или нет во время работы с приложением с помощью SWIFT... помогите мне
Как изменить цвет строки состояния с помощью ios с быстрым доступом к Интернету?
Ответ 1
В вашем Info.plist
вам необходимо установить "Просмотреть строку состояния на основе контроллера" на логическое значение.
Если вы установите его на YES
, вы должны переопределить функцию preferredStatusBarStyle
в каждом контроллере представления.
Если вы установите его на NO
, вы можете установить стиль в AppDelegate
, используя:
UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent, animated: true)
Ответ 2
override func viewWillAppear(animated: Bool) {
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()
}
}
Ответ 3
Для 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
влияет на цвет
Но если вы хотите изменить цвет строки состояния в время выполнения, я думаю, что лучший способ - добавить представление за панель состояния.
Ответ 4
Протестировано в Swift и iOS9
Если вы используете Контроллеры навигации, поместите это в свой класс viewcontroller:
override func viewDidLoad(){
...
self.navigationController?.navigationBar.barStyle = .Black
}
В противном случае переопределите preferredStatusBarStyle()
в вашем UIViewController:
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
Вы можете найти дополнительную информацию здесь
Ответ 5
Как отмечает @rckoenes, как и в iOS 7, строка состояния - это рисовать над вашим приложением. Таким образом, вы можете поместить представление за панель состояния (20px из верхней - высота строки состояния) и можете управлять цветом фона в соответствии с изменениями статуса подключения к Интернету, нет другой возможности изменить цвет строки состояния.
Ответ 6
//В вашем приложении AppDelegate.swift в файле didFinishLaunchingWithOptions: UINavigationBar.appearance(). BarTintColor = UIColor.greenColor()
//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
Ответ 7
Для Swift 3
Это должно работать для Xcode 8 и Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}