인터페이스 빌더에서 자동 레이아웃 설정을 처리합니다. 런타임에 상태 표시 줄을 숨길 때 레이아웃 가이드 상단에 고정 된 뷰를 오프셋하지 않으려합니다.iOS7 상태 표시 줄을 숨기고 상단 레이아웃 가이드를 조정하지 않습니다.
상태 표시 줄을 숨길 때 myViewController.topLayoutGuide.length
이 20에서 0으로 변경된다는 것을 발견했습니다. 그것을 막는 방법? 또는 (해결 방법으로) 핀 대 레이아웃 가이드없이 다양한 창 크기에 대해 전체 화면보기를 설정하는 방법은 무엇입니까?
일부 코드 내 상황을 설명하기 :
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Log(@"frame: %@, top: %.0f", NSStringFromCGRect(myViewController.myView.frame), self.topLayoutGuide.length);
출력 :
frame: {{40, 24}, {240, 40}}, top: 20
frame: {{40, 4}, {240, 40}}, top: 0
달성하려는 목표에 대해 완전히 명확하지 않습니다. 상태 표시 줄이 표시되는지 여부에 관계없이 뷰를 고정 된 위치에 표시하려고합니까? 아니면 iOS6/7 스위칭 문제입니까? 구성 요소와 런타임 결과를 배치 할 때 문제가 발생하는 경우 IB의 상태 표시 줄을 숨길 수도 있습니다. – Ben
런타임에 상태 표시 줄을 숨기고 그 순간 UI가 바뀝니다. 이유는'topLayoutGuide'에 있습니다. 상태 표시 줄이 숨겨지면 UI 위치를 유지하고 싶습니다. – brigadir
보기를 표시하고 상태 표시 줄을 제거 했습니까? 또는보기를 표시하기 전에 상태 표시 줄이 나타나지 않는다고 말하고 있습니까? – Ben