스플래시 화면 iOS 7에서 상태 표시 줄 텍스트 색상 변경


98

모든 뷰 컨트롤러의 상태 표시 줄을 변경하는 방법을 알려주는 스택 오버플로 질문 이 이미 있다는 것을 알고 있습니다. 현재 상태 표시 줄의 색상을 다음과 같이 변경하고 있습니다.

if(IS_IOS7)
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

에서 application:DidFinishLaunching

또한 UIViewControllerBasedStatusBarAppearanceplist 의 값 을 NO. 그러나 스플래시 화면에서는 여전히 상태 표시 줄 텍스트가 검정색으로 표시됩니다.

시작 화면에서 상태 표시 줄 텍스트 색상의 색상을 변경할 수 있습니까?


무슨 뜻입니까? '검은 색으로 상태 표시 줄이 계속 표시됩니다': 코드가 작동하면 상태 표시 줄 글꼴이 흰색이어야하고 상태 표시 줄 배경색은 스플래시 이미지에 따라 달라집니다 (이제 상태 표시 줄 높이-20 픽셀을 포함해야 함).
Vinzzz

죄송합니다. 텍스트 단어를 놓쳤습니다. 상태 표시 줄의 텍스트 색상 만 변경하고 있습니다. 스플래시 화면이 발생한 후에 변경할 수 있지만 스플래시 화면이 발생하면 변경할 수 없습니다.
Tiago Almeida

답변:


224

프로젝트 plist 파일에서 "Status Bar Style"속성을 추가합니다 (키는 UIStatusBarStyle). 그런 다음이 속성의 드롭 다운에 나열된 가능한 모든 값을 무시하고 UIStatusBarStyleLightContent대신 입력 합니다.

그리고 당신은 설정할 필요가 없습니다 UIViewControllerBasedStatusBarAppearanceNO당신이 설정할 수 있습니다, 당신의 plist에 preferredStatusBarStyle보기 컨트롤러에 당신이 원하는합니다.


iOS 6의 상태 표시 줄과 호환되도록 만드는 방법이 있습니까?
Rafael Nobre 2013 년

1
상태 표시 줄의 텍스트 색상은 흰색 또는 검정색입니다. 막대의 배경은 시작 이미지에서 가져온 다음 막대 아래로 확장되는 경우 viewController의보기에서 가져옵니다.
Vinzzz

1
다양한 메서드의 톤 후에이 메서드가 최종적으로 작동했습니다 (UIViewControllerBasedStatusBarAppearance가 NO로 설정 됨). 당신은 영웅입니다.
Tamás Sengel 2014

코드 UIApplication.sharedApplication (). statusBarStyle = .LightContent를 통해이 작업을 수행 할 수도 있습니다. AppDelegate에서 수행합니다
Yasmin Tiomkin

@Yasmin : 스플래시 화면 후 색상을 변경하려면이 솔루션은 이미 질문의 일부였습니다.)
Vinzzz

33

코드를 작성하지 않고도이 작업을 수행 할 수 있습니다
. 전체 앱에서 상태 표시 줄 텍스트 색상을 흰색으로 만들려면 다음을 수행하십시오.

당신 PLIST 프로젝트 파일을 :

  • 상태 표시 줄 스타일 : UIStatusBarStyleLightContent
  • 컨트롤러 기반 상태 표시 줄 모양보기 : NO
  • 상태 표시 줄은 처음에 숨겨져 있습니다. NO

허용되는 대답은 좋지만 위의 두 번째 글 머리 기호를 수행하지 않고는 모든 뷰 컨트롤러에서 작동하지 않았습니다. 감사!
Clifton Labrum 2014 년

"보기 컨트롤러 기반 상태 표시 줄 모양 : YES"여전히 트릭 (아이폰 OS 9) 할 것 같다
니콜라스 미아리

19

응용 프로그램 전체에서 밝은 색상 상태 표시 줄을 얻기 위해 다음 작업을 수행 할 수 있습니다.

  1. 프로젝트 네비게이터에서 프로젝트 이름을 선택합니다.
  2. 프로젝트 편집기의 왼쪽 열에있는 목록에서 대상 이름을 선택하십시오.
  3. 프로젝트 편집기 상단에서 일반을 ​​클릭합니다.
  4. 상태 표시 줄 스타일 설정-> 라이트

plist 파일에 다음 값을 추가하십시오.

  1. 상태 표시 줄 스타일-UIStatusBarStyleLightContent
  2. 컨트롤러 기반 상태 표시 줄 모양보기-아니요

이렇게하면 SPLASH SCREEN을 포함하여 응용 프로그램 전체에서 흰색 상태 표시 줄을 얻을 수 있습니다.


7

UIViewControllerBasedStatusBarAppearanceplist에서를 No로 설정하십시오.

그런 다음 실행 완료 옵션에 다음 코드를 추가하십시오.

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

   [application setStatusBarStyle:UIStatusBarStyleLightContent];

    self.window.clipsToBounds =YES;

    self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}

나를 위해 일한이 코드를 따르십시오.


내 배경도 밝은 동안 상태 표시 줄에 흰색 텍스트가 표시됩니다. 어떻게 흑백 텍스트를 표시 할 수 있습니다
Mangesh

Mangesh on the Target 일반 설정으로 이동하면 상태 표시 줄 스타일을 설정할 수있는 옵션이 있습니다
Preejith augustine 2013 년

: 당신은 실제로 다음과 같이 조금 도트 구문을 사용하여 간단한 비트 그 첫 줄을 쓸 수 if (UIDevice.currentDevice.systemVersion.floatValue >= 7) {
토드 리먼

2

다음은 상태 표시 줄 변경에 대한 Apple 지침 / 지침 입니다.

다음은 상태 표시 줄 스타일을 변경하는 방법입니다.

상태 표시 줄 스타일을 설정 UIViewControllerBasedStatusBarAppearance하려면 애플리케이션 레벨을 NO`.plist '파일에서 로 설정 하십시오.

상태 표시 줄 스타일을 설정하려면 뷰 컨트롤러 수준에서 다음 단계를 따르세요.

  1. 설정 UIViewControllerBasedStatusBarAppearanceYES.plist 당신의 UIViewController 수준 만 설정 상태 표시 줄 스타일을 필요로하는 경우, 파일.
  2. viewDidLoad 추가 기능에서- setNeedsStatusBarAppearanceUpdate

  3. 뷰 컨트롤러에서 preferredStatusBarStyle을 재정의하십시오.

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

상태 표시 줄 스타일 설정 수준에 따라 .plist 값을 설정합니다. 여기에 이미지 설명 입력


애플리케이션 시작 중 또는 뷰 컨트롤러의 viewDidLoad 중에 상태 표시 줄의 배경색을 설정할 수 있습니다.

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        return true
    }
}


or 
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
    }

}



결과는 다음과 같습니다.

여기에 이미지 설명 입력


1

응용 프로그램 전체에서 밝은 색상 상태 표시 줄을 얻기 위해 다음 작업을 수행 할 수 있습니다.

프로젝트 네비게이터에서 프로젝트 이름을 선택합니다. 프로젝트 편집기의 왼쪽 열에있는 목록에서 대상 이름을 선택하십시오. 프로젝트 편집기 상단에서 일반을 ​​클릭합니다. 상태 표시 줄 스타일 설정-> 라이트

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.