[ios] iOS에서 상태 표시 줄 텍스트 색상을 변경하는 방법

내 응용 프로그램은 어두운 배경이지만 iOS 7에서는 상태 표시 줄이 투명 해졌습니다. 그래서 구석에 녹색 배터리 표시기 만 표시됩니다. 홈 화면에서와 같이 상태 표시 줄 텍스트 색상을 흰색으로 변경하려면 어떻게해야합니까?



답변

  1. 설정 UIViewControllerBasedStatusBarAppearanceYES.plist 파일에.

  2. 에서 viewDidLoadDO A를[self setNeedsStatusBarAppearanceUpdate];

  3. 다음 방법을 추가하십시오.

    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }

참고 :이 내부 컨트롤러없는 작업을 수행 UINavigationController, 참조하시기 바랍니다 타이슨의 의견을 아래에 🙂

스위프트 3- 컨트롤러 내부에서 작동 UINavigationController합니다. 이 코드를 컨트롤러 안에 추가하십시오.

// Preferred status bar style lightContent to use on dark background.
// Swift 3
override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

스위프트 5와 스위프트 UI

SwiftUI의 경우라는 새 빠른 파일을 만듭니다. HostingController.swift

import Foundation
import UIKit
import SwiftUI

class HostingController: UIHostingController<ContentView> {
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
}

그런 다음 코드에서 다음 코드 줄을 변경하십시오. SceneDelegate.swift

window.rootViewController = UIHostingController(rootView: ContentView())

window.rootViewController = HostingController(rootView: ContentView())


답변

또는 뷰 컨트롤러 기반 상태 표시 줄 모양을 선택 해제 할 수 있습니다.

  1. 설정 View controller-based status bar appearanceNOInfo.plist .
  2. 요구 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

참고 :이 방법은 iOS9에서 더 이상 사용되지 않습니다. preferredStatusBarStyle대신 UIViewController를 사용하십시오 . ( Apple 개발자 라이브러리 참조 )


답변

코드를 작성하지 않고도이 작업을 수행 할 수 있습니다!

전체 응용 프로그램에서 상태 표시 줄 텍스트를 흰색으로 만들려면 다음을 수행하십시오.

plist 파일 을 프로젝트 합니다.

  • 상태 표시 줄 스타일 : Transparent black style (alpha of 0.5)
  • 컨트롤러 기반 상태 표시 줄보기 : NO
  • 상태 표시 줄은 처음에 숨겨져 있습니다. NO

답변

참고 : iOS 7/8에서는 가장 많이 답한 답변이 작동하지 않습니다.

Info.plist에서 ‘제어기 기반 상태 표시 줄보기’를 NO로 설정하십시오.

AppDelegate에서 추가

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
   ......
   ...
}    

이 솔루션은 iOS 7/8에서 작동합니다


답변

나에게 다른 대답 (및 다른 출처 / 문서)의 모든 것을 사용하는 것은 아무 일도 없었습니다. XIB에서 탐색 막대 스타일을 “검정색”으로 설정하는 것이 도움이되었습니다. 이것은 코드없이 텍스트를 흰색으로 바꿨습니다.

여기에 이미지 설명을 입력하십시오


답변

그 중 어느 것도 나를 위해 일하지 않았으므로 여기에 효과적인 해결책이 있습니다 …

에서 Info.plist, 행을 추가 :

UIViewControllerBasedStatusBarAppearance값을 설정하십시오 NO.

그런 다음 AppDelegate in didFinishLaunchingWithOptions에서 다음 행을 추가하십시오.

[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];


답변

이 코드를 작성하지 않아도됩니다

info.plist에 “컨트롤러 기반 상태 표시 줄보기”키를 다음과 같이 추가해야합니다. 여기에 이미지 설명을 입력하십시오

& 값 유형을 부울 & 값으로 설정하고 NO로 설정하십시오. 그런 다음 프로젝트 설정을 클릭 한 다음 일반 탭을 클릭하고 배포 정보 아래에서 기본 상태 표시 줄 스타일을 .Light로 설정하십시오.

여기에 이미지 설명을 입력하십시오

그게 다야.