App 의 iOS 7 상단 상태 표시 줄 어댑터 문 제 를 해결 하 는 방법 설명

3852 단어 iOS상태 표시 줄
먼저,ios 7 에 서 는 status bar 가 단독 20px 를 사용 하지 않 기 때문에 app 이 ios 7 과 ios 6.1 이하 의 지원 이 필요 하 다 면 적당 한 조합 이 필요 합 니 다.적당 한 시작:
xcode 로 새 항목 을 만 든 후 IOS 7 과 IOS 6 의 실행 효 과 를 먼저 봅 니 다.
ps:empty application 에 rootcontroller 가 추가 되 었 습 니 다.window 의 루트 컨트롤 러 로 view 에 tableview 를 넣 었 습 니 다.
2016626172746063.jpg (319×585) 2016626172812771.jpg (319×589)
IOS 7 의 새로운 문제 에 부 딪 혔 는 지 상태 표시 줄 이 tableview 와 겹 쳤 습 니 다.OK.보고 싶 지 않 은 결 과 를 보고 본 격 적 으로 싫 은 효 과 를 해결 하 겠 습 니 다.
첫 번 째 단계:xib 의 Use Autolayot 를 선택 하지 마 십시오.다음 그림:
2016626172831339.jpg (246×120)
두 번 째 단계:두 번 째 단계:View as"ios 6.1 and Earlier"를 선택 하 시 겠 습 니까?위의 그림 위치 로 선택 하 시 겠 습 니까?
세 번 째 단계:Size Inspector 에 ios 6/7 Deltas 가 있 습 니 다.각각 PosX 의 증 가 량,PosY 의 증 가 량,너비 증 가 량,높이 증 가 량 을 나타 냅 니 다.
2016626172846956.jpg (249×453)
ps:"ios 6.1 and Earlier"모드 에서 status bar 의 높이 가 20 이기 때문에 app 이 ios 7.0 모드 에서 실 행 될 때 view 가 20 픽 셀 을 아래로 이동 해 야 하기 때문에ΔY 에서 20 으로 설정 합 니 다.
tableView 좌표 가 20 아래로 이동 합 니 다.전체 화면의 높이 가 변 하지 않 기 때문에'ios 7.0 and Later'모드 에서 tableView 의 높이 를 20 픽 셀 로 줄 여야 합 니 다.즉,'ios 6.1 and Earlier'모드 에서 tableView 를 설정 해 야 합 니 다.ΔHeight 는-20 입 니 다.하면,만약,만약...ΔHeight,tableView 아래쪽 에 20 픽 셀 이 보이 지 않 습 니 다.demo 를 테스트 해 볼 수 있 습 니 다.
***주**:Δ,정 수 는 증 가 를 나타 내 고,음 수 는 감 소 를 나타 낸다.
네 번 째 단계:ok,설정 완료,IOS 에서 효과 보기:
2016626172904374.jpg (317×590)
신기 한 발견 이 예전 에 본 것 처럼 발 을 재촉 하 는 거 아 닐 까...................................................이렇게'ios 6.1 and Earlier'와'ios 7.0 and Later'UI 레이아웃 이 통일 되 었 습 니 다.
다른 방법
위 에서 XIB 의 설정 을 통 해 상태 표시 줄 과 view 가 겹 치 는 문제 에 이 르 렀 습 니 다.다음은 네트워크 전송 을 수정 하 는 window frame 방법 을 말씀 드 리 겠 습 니 다.
이전 단계:
첫째:appdeletage 에 다음 코드 를 추가 합 니 다.

  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
  self.window.frame = CGRectMake(0.0f,20.0f,self.window.frame.size.width,self.window.frame.size.height-20.0f);
  }

2.info.plist 파일 에 속성:View controller-based status bar appearance  값 을 NO 로 설정 합 니 다.
아래 효과 보기:
2016626172936079.jpg (318×590) 2016626172954068.jpg (322×588)
다음 그림 을 보면 질문 하 나 를 발견 할 수 있 습 니 다.
2016626173012992.jpg (322×398)
이것 은 무슨 원인 으로 인 한 것 입 니까?나 는 window 로 인해 548 이 528 로 바 뀌 었 다 는 것 을 알 게 되 었 다.그러나 table view 의 높이 는 548 로 20 개의 픽 셀 이 표시 되 지 않 는 다 는 것 을 알 게 되 었 다.그럼 어떤 동창 회 에 서 는 528 로 바 꾸 면 되 잖 아 요.네,고 칠 수 있어 요.고 친 후에 IOS 7 에 픽 셀 이 부족 한 문제 가 없 는 것 을 발 견 했 어 요.그런데 IOS 6 에 서 는 반 이 부족 해 요.다음 그림 을 보 세 요.
2016626173032396.jpg (321×355) 2016626173101975.jpg (316×329)
그래서 제 가 직접 테스트 를 해 봤 는데 IOS 7 과 IOS 6 에 맞 추 려 면 말 이 안 됩 니 다.
마지막 으로 몇 개의 명사 설정 의 역할 을 설명 합 니 다.

- (UIStatusBarStyle)preferredStatusBarStyle
{
 return UIStatusBarStyleLightContent;
}
- (BOOL)prefersStatusBarHidden
{
 return NO;
}
plist 에 View controller-based status bar appearance 설정  값 을 YES 로 설정 합 니 다.
이러한 역할 은 controller 를 바탕 으로 status bar 의 숨 김 과 스타일 을 동적 으로 제어 하 는 것 입 니 다.

좋은 웹페이지 즐겨찾기