iOS 상태 표시 줄 의 표시 와 숨겨 진 예제 코드

오늘 디자이너 가 iOS 상태 표시 줄 문 제 를 물 어 보 러 달 려 왔 는데 그동안 정리 가 안 돼 서'확인 해 보 겠 습 니 다.답장 드릴 게 요'라 고 하 는 수 밖 에 없 었 어 요.좀 오래 확인 해서 어색해 요.기억력 이 좋 은 것 은 썩 은 붓 보다 못 하 니,필 기 를 정리 하 는 좋 은 습관 을 기 르 기 를 바란다.그럼 잡담 은 그만 하고 본론 으로 들 어가 자.
우 리 는 xcode 를 사용 하여 iOS 프로젝트 를 새로 만 들 었 습 니 다.기본 적 인 상황 에서 상태 표시 줄 이 표 시 됩 니 다.
 
컨트롤 러 상태 표시 줄 숨 기기
가장 간단하게 숨 기 는 방법 은 다음 코드 를 사용 하 는 것 입 니 다.

- (BOOL)prefersStatusBarHidden {
  returnYES;
}
전역 숨 김 상태 표시 줄
위의 코드 는 확실히 대응 하 는 컨트롤 러 의 상태 표시 줄 을 숨 겼 지만 대부분 상황 에서 우리 의 프로젝트 에는 컨트롤 러 가 많 습 니 다.이러한 설정 은 약간 아 픕 니 다.우 리 는 전체 설정 을 할 수 있 습 니 다.위의 코드 를 설명 하고AppdelegatedidFinishLaunchingWithOptions에 다음 코드 를 추가 하여 실행 합 니 다.

[[UIApplicationsharedApplication] setStatusBarHidden:YES];
결 과 는 좀 어색 하고 상태 표시 줄 이 남아 있 습 니 다.info.plist 를 열 어 인 자 를 찾 습 니 다.View controller-based status bar appearance
말 그대로 이 매개 변 수 는 우리 프로젝트 상태 표시 줄 의 숨 김 이 각 컨트롤 러 의 설정 을 기준 으로 하 는 지 여 부 를 결정 합 니 다(각자 의 정치 또는 통일 관리).NO 로 설정 하고 다시 실행 합 니 다.응,이번 엔 우리 가 원 하 는 결과 야.이 럴 때 주석[[UIApplicationsharedApplication] setStatusBarHidden:YES];이 초기prefersStatusBarHidden방안 으로 돌아 가면 상태 표시 줄 숨 김 이 잘못 되 었 음 을 발견 할 수 있 습 니 다.이 럴 때 우리 프로젝트 의 상태 표시 줄 은 통일 관리 에 복종 하고 구체 적 인 컨트롤 러 설정 이 잘못 되 었 기 때 문 입 니 다.
시작 페이지 상태 표시 줄 숨 기기
눈치 빠 른 학생 들 은 우리 가 설정 한[[UIApplication sharedApplication] setStatusBarHidden:YES]View controller-based status bar appearance->NO 이후 app 이 시작 페이지 를 보 여 주 는 과정 에서 상태 표시 줄 이 여전히 표시 되 어 있 는 것 을 발견 할 수 있 습 니 다.어?사실 맞 아.우리 가didFinishLaunchingWithOptions에 있 으 니까 숨 기 는 거 잖 아.그러면 시작 과정의 상태 표시 줄 을 어떻게 숨 깁 니까?다시 info.plist 를 엽 니 다.이번 에는Status bar is initially hidden다시 말 그대로...알 잖 아,YES 로 설정 하고 실행 해,빙고!상태 표시 줄 귀신 보 러 가자."대응 하 는 설정 을 하지 않 은 상태 에서 시작 페이지 전시 과정 에서 상태 표시 줄 의 표시 줄 과 시작 후 상태 표시 줄 의 표시 줄 은 상대 적 으로 독립 되 어 있 습 니 다.시작 후 상태 표시 줄 의 숨겨 진 설정 은 위 참조:pointup_2:2 시야.기본적으로 코드 설정 이 없 으 면View controller-based status bar appearance->YES 시 시 시 작 된 상태 표시 줄 이 기본적으로 표 시 됩 니 다.그렇지 않 으 면Status bar is initially hidden상 태 를 따 릅 니 다.
전역 숨겨 진 상황 에서 의 개별 전시
그렇다면 문제 가 생 겼 다.만약 에 우리 가 전체 설정 을 통 해 상태 표시 줄 을 숨 겼 고 프로젝트 에 한두 개의 제어 편향 기 가 상태 표시 줄 을 보 여 줘 야 한다 면 어떻게 해 야 합 니까?
이런 상황 에서'거시적인 조절'이 필요 하 다.'전체'의 구 덩이 는'전체'로 메 워 야 한다.우 리 는 숨겨 야 할 컨트롤 러 안의viewWillAppear방법 에 설정[[UIApplicationsharedApplication] setStatusBarHidden:YES]할 수 있다.물론 우리 의 다른 컨트롤 러 상태 표시 줄 에 영향 을 주지 않 기 위해viewWillDisappear안에 이 를 진입 전의 상태[[UIApplicationsharedApplication] setStatusBarHidden:<#before status#>]로 설정 해 야 한다.
요약:View controller-based status bar appearance제어 App 상태 표시 줄 은 전역 설정(NO)또는 각 컨트롤 러 가 각각 설정(YES)을 받 습 니 다.[[UIApplicationsharedApplication]setStatusBarHidden:hidden],View controller-based status bar appearance == NO조건 하에 서 만 효력 이 발생 한다.해당prefersStatusBarHidden은 부분 설정 항목 으로 대응 하 는 컨트롤 러 상태 표시 줄 을 제어 하려 면View controller-based status bar appearance == YES에 있어 야 효력 이 발생 합 니 다.시작 페이지 전시 과정의 상태 표시 줄 을 숨 길 수 있 도록 설정Status bar is initially hidden -> YES합 니 다.
demo
오늘 은 여기까지 하 자,빨리 디자이너 와 심 부 름 하 자.무슨 잘못 과 누락 이 있 으 면 지적,보충 을 환영 합 니 다.()/
PS:와 주 라 카 의 교정 에 감 사 드 립 니 다.글 에서 해당 하 는 오류 와 부당 한 설명 이 수정 되 었 습 니 다.시작 페이지 전시 과정 에서 상태 표시 줄 의 현 은 은 상대 적 으로 독립 적 이 고 주로Status bar is initially hidden의 설정 에 달 려 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기