...

반응형

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

반응형