swift에서 status bar를 변경할려면 아래 코드를 viewDidLoad()에 넣으시면 됩니다
statusbarView.backgroundColor = UIColor.red
위의 코드에 원하는 색상을 넣으면 됩니다
if #available(iOS 13.0, *) {
let app = UIApplication.shared
let statusBarHeight: CGFloat = app.statusBarFrame.size.height
let statusbarView = UIView()
statusbarView.backgroundColor = UIColor.red
view.addSubview(statusbarView)
statusbarView.translatesAutoresizingMaskIntoConstraints = false
statusbarView.heightAnchor
.constraint(equalToConstant: statusBarHeight).isActive = true
statusbarView.widthAnchor
.constraint(equalTo: view.widthAnchor, multiplier: 1.0).isActive = true
statusbarView.topAnchor
.constraint(equalTo: view.topAnchor).isActive = true
statusbarView.centerXAnchor
.constraint(equalTo: view.centerXAnchor).isActive = true
} else {
let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
statusBar?.backgroundColor = UIColor.red
}
근데 만약 검은색으로 사용시 status bar의 글자색 때문에 status bar에 아무것도 안보이게 됩니다
이럴때는 status bar 글자색을 바꿔줘야 되는데요
아래 함수를 추가 해주면 됩니다
override var preferredStatusBarStyle: UIStatusBarStyle {
// 글자색을 흰색으로
return .lightContent
// 글자색을 검은색으로
//return .darkContent
}
그리고 info.plist에 View controller-based status bar appearance 항목을 추가 하고 value 값을 YES로 바꿔주시면 됩니다