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로 바꿔주시면 됩니다