Swift 3에서 상태 표시줄 스타일을 설정하는 방법
Xcode 8.0 베타 4를 사용하고 있습니다.
이전 버전에서는 UIViewController가 상태 표시줄 스타일을 설정하는 방법을 사용했습니다.
public func preferredStatusBarStyle() -> UIStatusBarStyle
그러나 Swift 3에서 "Get ONLY varaiable"로 변경된 것을 발견했습니다.
public var preferredStatusBarStyle: UIStatusBarStyle { get }
UIView Controller에서 사용할 스타일을 제공하려면 어떻게 해야 합니까?
[Updateed] Xcode 10+ & Swift 4.2+의 경우
iOS 7 이상에서는 이 방법을 사용하는 것이 좋습니다.
의 ★★★★★★★★★★★★★★★★★★★★★★★★★.Info.plist
, set , syslogsView controller-based status bar appearance
로로 합니다.YES
.
「」를 .preferredStatusBarStyle
(Apple docs)를 각 뷰 컨트롤러에 표시합니다.예를 들어 다음과 같습니다.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
「 」가 preferredStatusBarStyle
에 근거해 를 들면,).이 경우, 「」를 호출합니다( 「」는 「」로 합니다).setNeedsStatusBarAppearanceUpdate()
그 상태가 바뀌면요.
버전 7 이전의 iOS, 권장되지 않는 방법
애플은 이를 폐지했기 때문에 향후 삭제될 예정이다.다음 iOS 버전이 출시될 때 다시 쓸 필요가 없도록 위의 방법을 사용하십시오.
In을 Info.plist
, set , syslogsView controller-based status bar appearance
로로 합니다.NO
.
»appDelegate.swift
, . . . . . . . .didFinishLaunchingWithOptions
명령어, 명령어:
UIApplication.shared.statusBarStyle = .lightContent
내비게이션 컨트롤러용
각 뷰 , 를 설정합니다.View controller-based status bar appearance
로로 합니다.YES
★★★★★★★★★★★★★로info.plist
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
최신 업데이트(X코드 10+/Swift 4.2+)
이 기사는 지난 몇 년간 존재했던 다양한 접근 방식의 논리를 이해하고자 하는 모든 사람을 위해 그대로 남겨져 있습니다.한편, Xcode 10에서는 Swift 4.2 first 어프로치는 폐지되어 더 이상 지원되지 않습니다(즉, 채용하려고 해도 유효하게 되지 않습니다).이면에 있는 이유를 더 잘 이해하기 위해 정보를 참조할 수 있습니다.Plist.info
플래그를 지정하고 커스터마이즈 작업을 수행합니다.
중요한 설명
상태 표시줄 모양을 사용자 정의하는 두 가지 방법을 이해하는 것이 매우 중요합니다.그것들은 다르므로 섞으면 안 된다.
첫 번째 접근법– 앱 전체에 대해 한 가지 색상 사용 (iOS7 이후 폐지)
info.plist에서 다음과 같은 키를 찾거나 만듭니다.
View controller-based status bar appearance
NO로 설정합니다.
그게 뭘 하는데?기본적으로 응용 프로그램에서 상태 표시줄 모양은 각 뷰 컨트롤러에 의해 개별적으로 정의되지 않는다는 설정이 설정됩니다.이것은 이해하는 것이 매우 중요하다.즉, 앱 전체와 모든 화면에 대해 동일한 설정을 할 수 있습니다.다음의 2개의 설정이 있습니다.default
바탕에 텍스트가 됨) 또는 ('백색 바탕에 검은색 됨)lightContent
이치노
다음 중 하나를 설정하려면(모든 화면에 대해 한 가지 설정)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.statusBarStyle = .lightContent // .default
return true
}
이렇게 하면 각 뷰 컨트롤러에서 이 설정을 다시 설정할 필요가 없습니다.그러나 언제든지 이 방법을 사용하여 자발적으로 모양을 변경할 수 있습니다.
두 번째 접근법– 각 뷰 컨트롤러의 개별 색상
이것은 정반대입니다.동작시키려면 info.plist로 이동하여
View controller-based status bar appearance
YES로
같이 마다 이 을 각 뷰컨트롤러에 됩니다.UIViewController
다음 중 하나:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent // .default
}
처음과 동일하게 상태 표시줄의 어두운 스타일 또는 밝은 스타일을 각 뷰 컨트롤러에 개별적으로 설정합니다.
이 속성은 다음 두 가지 시나리오에서 UIKit에 의해 가져옵니다.
- 화면 초기화 시 UI 준비 중.
- 「」를
setNeedsStatusBarAppearanceUpdate()
암호에 입력되어 있습니다.
후자의 경우 상태 표시줄 모양을 다음 코드로 조작할 수 있습니다.
var isDark = false {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return isDark ? .lightContent : .default
}
func toggleAppearance() {
isDark.toggle()
}
toggleAppearance()
상태 표시줄 스타일 변경이 트리거됩니다.
세 번째 접근법– Hack!
상태 표시줄에 직접 액세스할 수 있는 해킹이 있습니다.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if let statusBar = UIApplication.shared.value(forKey: "statusBar") as? UIView {
statusBar.backgroundColor = UIColor.blue
}
return true
}
상태 표시줄의 색상이 검은색이나 흰색 이외의 색상이 필요한 경우 문서화되지 않은 API를 사용합니다.얻을 수 있다statusBar
KVC를 사용하여 오브젝트를 설정하고 배경색을 설정합니다. 수 있는 오브젝트는 '이렇게' 입니다.UIStatusBar
을 따온 말입니다.UIView
스럽게 지지하게 됩니다.backgroundColor
, 입니다(이것은 고려되지 않습니다).UINavigationBar
navbar+ 커스터마이즈 할 수 ).navbar+statusbar의 어피아란스를 커스터마이즈 할 수 있습니다.앱이 거부될 수 있습니다.★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★또한 특정 복잡한 상황(네스트된 컨트롤러, 하위 탐색 컨트롤러 및 뷰 컨트롤러 계층 등)에서는 이 방법이 상태 표시줄 모양을 커스터마이즈하는 거의 유일한 방법일 수 있습니다(투명하게 하는 방법 등).
Xcode 10+, Swift 4.2
다른 방법은 없습니다.개발자는 플래그를 YES로 설정하고(또는 디폴트로 YES이므로 이 액션을 생략하고) 위의 지시에 따라 각 뷰 컨트롤러가 상태 표시줄 모양을 정의할 수 있도록 해야 합니다.
보너스
모든 단계에서 상태 표시줄 모양을 자발적으로 변경하기 위해 복잡한 상황에서 사용할 수 있는 해킹 기반 솔루션(권장되지는 않지만).색상 면에서는 다음 확장 방법을 사용하면 일반 접근 방식과 동일하게 수행할 수 있습니다.필요에 따라 조정할 수 있습니다.
extension UIViewController {
func setStatusBarStyle(_ style: UIStatusBarStyle) {
if let statusBar = UIApplication.shared.value(forKey: "statusBar") as? UIView {
statusBar.backgroundColor = style == .lightContent ? UIColor.black : .white
statusBar.setValue(style == .lightContent ? UIColor.white : .black, forKey: "foregroundColor")
}
}
}
반환된 값을 설정하지 않고 덮어쓸 수 있습니다.메서드가 {get}으로 선언되었으므로 getter를 제공하십시오.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
조건부로 설정했을 「」에 전화할 .setNeedsStatusBarAppearanceUpdate()
가 되면 있게
3 & &9 & 10 Swift 3 & 4, iOS 10 & 11, Xcode 9 & 10
나에게는 이 방법이 효과가 없다.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
각 뷰 컨트롤러에 사용했을 때는, 다음과 같이 동작했습니다.
info"info.list" 행을 합니다.
View controller-based status bar appearance
and and로NO
다음 대리점:
UIApplication.shared.statusBarStyle = .lightContent
X코드 10 이후
Swift 5에서 테스트 완료
코드는 필요 없습니다.다음 절차를 따릅니다.
전체 앱에서 상태 표시줄을 변경하고 싶은 경우.
- 프로젝트 탐색기(왼쪽 패널)에서 프로젝트를 선택합니다.
- 대상을선택하십시오.
- [ General ]탭을 선택합니다.
- 배포 정보를 찾습니다.
- 상태 표시줄 스타일을 Light로 변경(어두운 배경의 경우 "Light", Light 배경의 경우 "Default")
info.plist 변경 사항 잊지 마세요
- [ Select Info ]탭
- 이 키를 목록 파일에 추가합니다. "컨트롤러 기반 상태 표시줄 모양 보기" = 아니요
프로젝트를 실행하고 확인합니다.
Swift 5 및 Xcode 10.2 및 11.0의 프로젝트
를 statusBar
에, 의 색상에서 흰색으로UINavigationController
을 inside 에 합니다.AppDelegate
:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UINavigationBar.appearance().barStyle = .blackOpaque
return true
}
다음 코드:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
에는 효과가 없다UIViewControllers
에에 a a in 되어 있다UINavigationController
는 ""를 statusBarStyle
UINavigationController
아니다.statusBarStyle
ViewControllers
그 안에 들어있어요.
이것이 받아들여진 답변으로 성공하지 못한 사람들에게 도움이 되기를 바랍니다!
보기가 나타난 후 언제든지 상태 표시줄 스타일을 변경하려면 다음을 사용할 수 있습니다.
파일 info.list add row :컨트롤러 기반 상태 바의 외관을 표시하고 YES로 설정합니다.
var viewIsDark = Bool() func makeViewDark() { viewIsDark = true setNeedsStatusBarAppearanceUpdate() } func makeViewLight() { viewIsDark = false setNeedsStatusBarAppearanceUpdate() } override var preferredStatusBarStyle: UIStatusBarStyle { if viewIsDark { return .lightContent } else { return .default } }
Info.plist 파일에 다음 키를 추가해야 합니다.
View controller-based status bar appearance
부울값을 로 설정하고
applegate didFinishLaunchingWithOptions
반품 전 방법
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
statusBar.backgroundColor = UIColor.red
}
UIApplication.shared.statusBarStyle = .lightContent
backgroundColor
★★★★★★★★★★★★★★★★★」statusBarStyle
필요에 따라서
스토리보드에서도 할 수 있습니다.
- info에 새 엔트리를 만듭니다.plist "View controller-based status bar apasure"에서 "YES"로 설정합니다.
- 스토리보드로 이동한 다음 변경할 네비게이션 컨트롤러를 선택합니다.Storyboard 문서 개요 섹션(Storyboard의 왼쪽 패널)에서 네비게이션 바를 클릭합니다.
- 오른쪽 패널로 이동하여 속성 섹션을 클릭합니다.
- 탐색 모음 섹션 아래에 스타일이 표시됩니다.원하는 스타일을 선택합니다(기본값은 검은색, 검은색은 흰색).
가지고 있는 각 내비게이션컨트롤러에 대해 이 작업을 수행해야 합니다.그러나 이 탐색 컨트롤러 아래의 보기는 모든 보기 상태 표시줄 스타일/색상을 방금 선택한 것으로 변경합니다.이 옵션은 결과를 즉시 볼 수 있고 모든 뷰 컨트롤러에 추가 코드를 추가할 필요가 없기 때문에 더 좋습니다.
(모든 Swift 프로젝트에서 Xcode 8.3.3으로 완료)
iOS 11의 모든 뷰 컨트롤러의 상태 표시줄을 변경하고 싶은 사용자에게 Swfit 4/5 솔루션은 매우 간단합니다.
1) Info.plist 추가:
컨트롤러 기반 상태 표시줄 표시 -> NO
2) XCode select project 왼쪽 > Targets > Select your project > Select General > Deployment Info > Select Status Bar Style : Light
하나의 뷰 컨트롤러에 대해서만 상태 표시줄을 변경하려면 viewDidLoad에서 다음을 추가합니다.
2.1) Info.plist
컨트롤러 기반 상태 표시줄 표시 -> YES
2.2)
override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}
App Delegate에서 목표 C(또는 원어민 반응) 변경:
1) Info.plist 추가:
컨트롤러 기반 상태 표시줄 표시 -> NO
2) AppDelegate -> didFinishLaunching WithOptions
[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDarkContent animated:YES];
상태 표시줄을 변경하면 푸시(네비게이션 컨트롤러)를 수행하려고 시도하지 않고 모듈식 뷰 컨트롤러를 표시할 때만 작동합니다.
스위프트 5
PRAVEEN의 답변에 대한 자세한 내용은 https://stackoverflow.com/a/40066798/2082851,에서 설명하겠습니다.각 컨트롤러의 상태 표시줄을 유연하게 커스터마이즈할 수 있습니다.
으로 말하면, 「」, 「」를 합니다.BaseViewController
처리하다statusBarStyle
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★새 컨트롤러를 생성할 때 이 기본 컨트롤러의 하위 클래스로 만드십시오.
상태 모양을 변경하려면 이 속성만 업데이트하면 됩니다.상태 표시줄 스타일이 즉시 업데이트됩니다.
실행
class BaseViewController: UIViewController {
var statusBarStyle: UIStatusBarStyle = .default {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return statusBarStyle
}
}
데모
class ViewController: BaseViewController, UIScrollViewDelegate {
let scrollView = UIScrollView()
...
func scrollViewDidScroll(_ scrollView: UIScrollView) {
UIView.animate(withDuration: 0.3) {
if scrollView.contentOffset.y > 30 {
self.statusBarStyle = .darkContent
} else {
self.statusBarStyle = .lightContent
}
}
}
}
2. UINavigationController
★★★의 UINavigationController
이는 특수한 경우이며, 다음 중 하나의 해결 방법을 따를 수 있습니다.
솔루션 A: 메시지 디스패치로 덮어쓰기
는 UINavigation Controller이기 때문에 UINavigation Controller는 UINavigation Controller입니다.NSObject
.ObjectiveC
, 그 메서드는 다음과 같습니다.message dispatch
덮어쓸 수 있습니다.
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
B: B: 작성UINavigationController
이 이미 UINavigationController
(통상은, 보다 많은 요건을 관리할 필요가 있습니다), 이것이 고객에게 최적인 솔루션입니다.
final class NavigationController: UINavigationController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? super.preferredStatusBarStyle
}
}
번째 는 '키'가 해야 합니다.View controller-based status bar appearance
값 " " "NO
로로 합니다.Info.plist
file.그 컨트롤러가 영향을 주는 것은 2가지입니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UIApplication.shared.statusBarStyle = .lightContent
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = .default
}
네비게이션 바를 다룰 때 상태 바의 텍스트 색상과 관련하여 약간의 문제가 있는 것 같습니다.
를 .plist로 로 설정합니다.YES
컬러 네비게이션 바를 사용하면 작동하지 않을 수 있습니다.
예를 들어 다음과 같습니다.
override func viewWillAppear(_ animated: Bool) {
let nav = self.navigationController?.navigationBar
nav?.barTintColor = .red
nav?.tintColor = .white
nav?.titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
setNeedsStatusBarAppearanceUpdate()
}
그리고.
override var preferredStatusBarStyle: UIStatusBarStyle {return .lightContent}
AppDelegate에서 다음을 설정해도 위의 코드가 작동하지 않습니다.
UIApplication.shared.statusBarStyle = .lightContent
아직 어려움을 겪고 있는 사람에게는 상태 표시줄이 밝은지 어두운지 여부를 내비게이션 바의 스타일로 판단할 수 있는 것 같습니다.그래서 viewWillAppear에 다음 행을 추가하여 이 문제를 해결할 수 있었습니다.
nav?.barStyle = UIBarStyle.black
막대 스타일이 검은색이면 재정의된 변수를 수신합니다.이것이 누군가에게 도움이 되기를 바랍니다:)
Xcode 8.3.1, Swift 3.1
info에 새 엔트리를 만듭니다.plist "View controller-based status bar apaurance"에서 "NO"로 설정합니다.
AppDelegate.swift를 열고 FinishLaunchingWithOptions 메서드로 다음 행을 추가합니다.
application.statusBarStyle = .lightContent
스위프트 3
Info에서 " bar"라는하고 값을 .plist " controller-based status bar apasure"로 합니다.No
.
class YourViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarStyle = .lightContent //or .default
setNeedsStatusBarAppearanceUpdate()
}
}
@Krunal https://stackoverflow.com/a/49552326/4697535에 의한 great asnower에 추가하려면
in a a a a 를 사용하고 있는 UINavigationController
, . . . . . . . .preferredStatusBarStyle
will will will will 、 will will 。UIViewController
X코드 10과 스위프트 4
을 설정합니다.UINavigationController
예:
class LightNavigationController: UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
앱 레벨 솔루션에 확장 기능 사용:
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
guard let index = tabBarController?.selectedIndex else { return .default }
switch index {
case 0, 1, 2: return .lightContent // set lightContent for tabs 0-2
default: return .default // set dark for tab 3
}
}
}
스위프트 4 이상
흰색 상태 표시줄 텍스트:
navigationController.navigationBar.barStyle = .blackTranslucent
다음은 상태 표시줄 스타일 변경에 대한 Apple 지침/지침입니다.
스타일을 설정하는 은 '어플리케이션레벨'을 설정합니다.UIViewControllerBasedStatusBarAppearance
로로 합니다.NO
안에서.plist
의 파일. 그리고 당신의appdelegate
didFinishLaunchingWithOptions
다음 명령을 추가합니다(프로그램적으로 앱 위임자로부터 할 수 있습니다).
목표 C
[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
재빠르다
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
application.statusBarStyle = .lightContent
return true
}
상태 표시줄 스타일을 설정하려면 뷰 컨트롤러 수준에서 다음 단계를 수행합니다.
- 를 합니다.
UIViewControllerBasedStatusBarAppearance
로로 합니다.YES
.plist
파일, UVINSIE 컨트롤러 레벨에서 상태 표시줄 스타일을 설정해야 합니다.파일(UIViewController 수준에서만 상태 표시줄 스타일을 설정해야 하는 경우) In the viewDidLoad add function - viewDidLoad 추가 함수 -
setNeedsStatusBarAppearanceUpdate
뷰 컨트롤러에서 preferredStatusBarStyle을 덮어씁니다.
목표 C
- (void)viewDidLoad
{
[super viewDidLoad];
[self setNeedsStatusBarAppearanceUpdate];
}
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
재빠르다
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
상태 표시줄 스타일 설정 수준에 따라 .plist의 값을 설정합니다.
Swift 4.0 "Finish Launching With Options launch Options:" Appdelegate 클래스에서 이 코드를 사용하십시오.
UIApplication.shared.statusBarStyle = .lightContent
let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as! UIView
if statusBar.responds(to: #selector(setter: UIView.backgroundColor)){
statusBar.backgroundColor = UIColor.black
}
iOS 11.2
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
UINavigationBar.appearance().barStyle = .black
return true
}
모달 프레젠테이션을 사용하는 경우 다음을 설정해야 합니다.
viewController.modalPresentationCapturesStatusBarAppearance = true
이건 내게 효과가 있었다.
트 세 set)View controller-based status bar
plist에서 NO로 나타나다UIViewController
viewDidAppear
just added the following line 다음 행을 추가했을 뿐입니다.
UIApplication.shared.setStatusBarStyle(UIStatusBarStyle.lightContent, animated: true)
스위프트 3
Info.plist에서 컨트롤러 기반 상태 표시줄 표시 = YES인 경우
모든 Navigation Controller에 대해 이 확장을 사용합니다.
extension UINavigationController
{
override open var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
UINavigationController가 없고 UIViewController만 있는 경우 다음 코드를 사용합니다.
extension UIViewController
{
override open var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
저도 이렇게 열심히 하고 있었는데, 것 문 도 시 해 는 은 정 러 를 세, i 모 요 this was tooling to strugg if you are제 full with까 present.modalPresentationStyle
as ~하듯이.fullscreen
and then, on your presenting view controller, just override 그리고 프레젠테이션 뷰 컨트롤러에서는.preferredStatusBarStyle
로로 합니다..lightContent
.
그래서:
let navigationController = UINavigationController(rootViewController: viewController)
navigationController.modalPresentationStyle = .fullScreen // <=== make sure to set navigation modal presentation style
present(navigationController, animated: true, completion: nil)
사용자 정의 뷰 컨트롤러에서 상태 표시줄 스타일을 재정의합니다.
override var preferredStatusBarStyle: UIStatusBarStyle {
.lightContent
}
"shouldStatusBarDark"라는 Bool 속성을 사용하여 상태 표시줄 색상을 전환할 수 있습니다.또한 스크롤할 때 해당 값을 업데이트하여 상태 표시줄 색상을 변경할 수도 있습니다.
var shouldStatusBarDark = false {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return shouldStatusBarDark ? .default : .lightContent
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offSetY = scrollView.contentOffset.y
if offSetY > 50 {
UIView.animate(withDuration: 0.4, animations: {
self.navView.alpha = 1
self.shouldStatusBarDark = true
})
} else {
UIView.animate(withDuration: 0.4, animations: {
self.navView.alpha = 0
self.shouldStatusBarDark = false
})
}
}
이 답변의 대부분은 재해시된 것이지만 어두운 배경을 사용할 때 실제로 부팅 화면을 나타내는 답변은 없습니다.
는 이 과 같이 했다.info.plist
가벼운 스타일의 상태 표시줄이 생성되었습니다.
<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
경고가 표시되는 경우:iOS 9.0에서는 'statusBarStyle'에 대한 설정기가 더 이상 사용되지 않습니다. (UIViewController preferredStatusBarStyle)을 사용한 후 상태 표시줄을 light 또는 dark로 설정하려면 다음 코드를 사용하십시오.
//To set the status bar to white
self.navigationController?.navigationBar.barStyle = .black //or .blackTranslucent
//To set the status bar to black
self.navigationController?.navigationBar.barStyle = .default
이렇게 해도 navbar가 변경되지 않고 단순히 스타일을 나타내므로 상태 표시줄이 그에 따라 변경됩니다.
NB. info.plist를 설정해야 합니다.
View controller-based status bar appearance to YES
에서는 iOS 13을 사용할 수 ..darkContent
UIStatusBarStyle
status status bar를 표시합니다.
여전히 메서드에서 상태 표시줄 스타일 기준을 변경할 수 없는 경우
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
다음 방법을 사용해 보십시오.
override viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.navigationBar.barStyle = .black
}
언급URL : https://stackoverflow.com/questions/38740648/how-to-set-status-bar-style-in-swift-3
'sourcecode' 카테고리의 다른 글
홈브루 패키지가 설치되어 있는지 감지 (0) | 2023.04.19 |
---|---|
python은 정렬된 목록을 가지고 있나요? (0) | 2023.04.19 |
Bash에서 변수가 비어 있는지 확인하는 방법 (0) | 2023.04.19 |
SSL/TLS 보안 채널에서 Powershell Invoke-WebRequest 실패 (0) | 2023.04.19 |
WPF: 단순한 TextBox 데이터 바인딩 (0) | 2023.04.19 |