iOS 에서 상태 표시 줄 의 기본 사용 방법 집합
상태 표시 줄:시간,배터리 등 정보 표시
탐색 표시 줄:app 페이지 제목 표시,되 돌리 기 단추 등
iOS 7 이전:상태 표시 줄 과 네 비게 이 션 표시 줄 은 분리 되 어 있 습 니 다.
iOS 7 이후:상태 표시 줄 과 네 비게 이 션 표시 줄 을 합 친다.내 비게 이 션 부분 전체 높이(64)=상태 표시 줄 높이(20)+내 비게 이 션 표시 줄 내용 높이(44)
아이 폰 X 기기 등장 이후 상태 표시 줄 높이 는 44,내 비게 이 션 표시 줄 부분 총 높이(88)=상태 표시 줄(44)+내 비게 이 션 표시 줄 내용 높이(44)
2.상태 표시 줄 숨 김 및 글꼴 스타일 설정
iOS 상태 표시 줄 은 표시 와 숨 김 을 설정 할 수도 있 고 텍스트 의 색상 을 설정 할 수도 있 습 니 다.info.plist 의 View controller-based status bar appearance 속성 을 NO 또는 YES 로 수정 함으로써 상태 표시 줄 의 설정 은 전역 제어 와 부분 제어 로 나 눌 수 있 습 니 다.
전역 제어:info.plist 설정 을 통 해 전역 방법 을 호출 합 니 다.
페이지 제어:보기 컨트롤 러 에서 prefers Status BarHidden 방법 으로 설정 합 니 다.
1.전역 제어
기본 상황 이나 수 동 으로 View controller-based status bar appearance 를 NO 로 설정 합 니 다.이 경우 상태 표시 줄 은 전역 설정 이 필요 하고 두 가지 방법 으로 설정 되 어 있 습 니 다.
방법 1:타 겟 에 순서대로 들 어 갑 니 다]->[General]->[Deployment Info],그리고 다음 과 같이 설정 할 수 있 습 니 다.
방법 2:코드 설정
//1. (YES) (NO)
[[UIApplication sharedApplication] setStatusBarHidden:NO];
//2.
//UIStatusBarStyleDefault, ( )
//UIStatusBarStyleLightContent,
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
메모:코드 를 사용 하여 전역 상태 표시 줄 을 제어 합 니 다.코드 의 위 치 는 매우 중요 합 니 다.AppDelegate 에 전체 App 페이지 의 상태 표시 줄 스타일 을 설정 할 수 있 습 니 다.한 페이지 의 숨겨 진 상태 표시 줄 을 따로 설정 하려 면 페이지 에 들 어 갈 때 숨겨 진 것 을 설정 하고 페이지 를 종료 할 때 표시 줄 을 설정 하여 다른 페이지 의 상태 표시 줄 스타일 에 영향 을 주지 않도록 해 야 합 니 다.
2.페이지 설정
info.plist 에 View controller-based status bar appearance 속성 을 YES 로 설정 하고 상태 표시 줄 은 기본적으로 표시 되 며 글꼴 은 검은색 입 니 다.이 때 전역 설정 작업 이 잘못 되 었 습 니 다.페이지 설정 이 있어 야 스타일 을 수정 할 수 있 습 니 다.즉,모든 보기 컨트롤 러 나 컨트롤 러 기본 클래스 에서 다음 코드 를 사용 할 수 있 습 니 다.
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent; //
//return UIStatusBarStyleDefault; //
}
- (BOOL)prefersStatusBarHidden {
return YES; //
//return NO; //
}
그러나 여기에 문제 가 있 습 니 다.현재 보기 컨트롤 러 가 UINavigationController 의 하위 보기 컨트롤 러 라면 preferred Status BarStyle 이 호출 되 지 않 습 니 다.이것 은 네 비게 이 션 컨트롤 러 에 있 는 preferred Status BarStyle 이 상태 표시 줄 스타일 을 수정 하 는 능력 을 가지 기 때문에 이 문 제 를 해결 하 는 방법 은 두 가지 가 있 습 니 다.방법 1:하위 내 비게 이 션 컨트롤 러 추가
사용자 정의 하위 네 비게 이 션 컨트롤 러 를 사용 하여 다음 과 같은 코드 를 추가 해 야 합 니 다.
- (UIStatusBarStyle)preferredStatusBarStyle {
UIViewController *topVC = self.topViewController;
return [topVC preferredStatusBarStyle];
}
방법 2:preferred StatusBarStyle 포기preferred Status BarStyle 방법 을 사용 하지 않 고 현재 보기 컨트롤 러 에서 다음 과 같은 방법 으로 상태 표시 줄 을 수정 할 수 있 습 니 다.
// ,
self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
// ,
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
3.상태 표시 줄 배경 색 설정iOS 7 이후 의 상태 표시 줄 과 네 비게 이 션 표시 줄 이 하나 로 융합 되 어 있 기 때문에 기본 적 인 상황 에서 상태 표시 줄 은 네 비게 이 션 표시 줄 배경 색 의 변화 에 따라 달라 집 니 다.그래서 우 리 는 내 비게 이 션 표시 줄 을 바 꾸 어 상태 표시 줄 의 배경 색 을 수정 할 수 있다.
//
self.navigationController.navigationBar.translucent = NO;
//
[self.navigationController.navigationBar setBarTintColor:[UIColor orangeColor]];
물론 상태 표시 줄 의 배경 색 을 따로 설정 할 수 있 습 니 다.예제 코드 는 다음 과 같 습 니 다.
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow”]
valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [UIColor greenColor];
}
메모:한 페이지 의 상태 표시 줄 배경 색 을 따로 설정 하려 면 페이지 를 떠 날 때 그대로 복원 해 야 합 니 다.4.시작 페이지 숨 김 상태 표시 줄
앱 시작 페이지 에 상태 표시 줄 정 보 를 표시 하지 않 아 도 숨 김 설정 이 가능 합 니 다.설정 방법 은 여전히 info.plist 를 수정 합 니 다.Status bar is initially hidden 만 설정 하면 됩 니 다.YES 로 설정 한 후 시작 페이지 는 상태 표시 줄 을 잠시 표시 하지 않 습 니 다.다음 과 같이 작 동 합 니 다.
5.상태 표시 줄,네 비게 이 션 표시 줄 과 관련 된 일반적인 매크로 정의
#pragma mark -
//
#define ZS_ScreenWidth [[UIScreen mainScreen] bounds].size.width
//
#define ZS_ScreenHeight [[UIScreen mainScreen] bounds].size.height
// iPhoneX
#define ZS_ISIphoneX (ZS_ScreenWidth == 375.f && ZS_ScreenHeight == 812.f ? YES : NO)
//
#define ZS_NavBarHeight (ZS_ISIphoneX ? 88.f : 64.f)
//
#define ZS_StatusBarHeight (ZS_ISIphoneX ? 44.f : 20.f)
//
#define ZS_NavBarContentHeight 44.0
//
#define ZS_TabBarHeight (ZS_ISIphoneX ? 49.f + 34.f : 49.f)
관련 글:iOS 탐색 표시 줄 사용
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.