수색…
비 UINavigationBar 상태 표시 줄
- info.plist에서
View controller-based status bar appearance
를YES
-
UINavigationController
포함되지 않은 뷰 컨트롤러에서는이 메서드를 구현합니다.
목표 -C에서 :
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
스위프트 :
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.LightContent
}
UINavigationBar 상태 표시 줄의 경우
UINavigationController를 서브 클래스 화해, 다음의 메서드를 오버라이드 (override)합니다.
목표 -C에서 :
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
스위프트 :
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .lightContent
}
또는 UINavigationBar
인스턴스에 barStyle
을 설정할 수 있습니다.
목표 C :
// e.g. in your view controller's viewDidLoad method:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack; // this will give you a white status bar
빠른
// e.g. in your view controller's viewDidLoad method:
navigationController?.navigationBar.barStyle = .black // this will give you a white status bar
UIBarStyle
옵션은 default
, black
, blackOpaque
, blackTranslucent
입니다. 후자 3은 모두 흰색 텍스트가있는 상태 표시 줄을 제공해야하며 마지막 두 개는 막대의 불투명도를 지정합니다.
참고 : 원하는대로 탐색 모음의 모양을 변경할 수 있습니다.
ViewController의 코드를 변경할 수 없다면
잘못된 상태 표시 줄 색이있는 (예를 들어) AwesomeViewController가 포함 된 라이브러리를 사용하는 경우 다음을 시도 할 수 있습니다.
let awesomeViewController = AwesomeViewController()
awesomeViewController.navigationBar.barStyle = .blackTranslucent // or other style
ViewController 포함
UIViewControllerContainment
를 사용하는 경우 살펴볼 가치가있는 몇 가지 다른 메소드가 있습니다.
자식 viewController가 상태 표시 줄의 표시를 제어하기를 원할 때 (즉, 자식이 화면 상단에 위치하면
스위프트에서
class RootViewController: UIViewController {
private let messageBarViewController = MessageBarViewController()
override func childViewControllerForStatusBarStyle() -> UIViewController? {
return messageBarViewController
}
override func viewDidLoad() {
super.viewDidLoad()
//add child vc code here...
setNeedsStatusBarAppearanceUpdate()
}
}
class MessageBarViewController: UIViewController {
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .Default
}
}
전체 응용 프로그램의 상태 표시 줄 스타일 변경
빠른:
1 단계:
Info.plist 에서 다음 속성을 추가하십시오 :
View controller-based status bar appearance
그 값을
NO
아래 이미지에 설명 된대로 :
2 단계:
AppDelegate.swift 파일의 didFinishLaunchingWithOptions
메소드에 다음 코드를 추가하십시오.
UIApplication.shared.statusBarStyle = .lightContent
또는
UIApplication.shared.statusBarStyle = .default
.lightContent 옵션은 앱 전체에 대해 statusBar 의 색상을 흰색으로 설정합니다.
.default 옵션은 앱 전체에 대해 statusBar 의 색상을 원래 검은 색으로 설정합니다.
목표 -C :
SWIFT 섹션의 첫 번째 단계를 따르십시오. 그런 다음이 코드를 AppDelegate.m 파일에 추가하십시오.
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
또는
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];