스플래시 화면 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대신 입력 합니다.

그리고 당신은 설정할 필요가 없습니다 UIViewControllerBasedStatusBarAppearance에 NO당신이 설정할 수 있습니다, 당신의 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. 설정 UIViewControllerBasedStatusBarAppearance에 YES에.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.