UINavigationController는 다소 이상하고 문서화되지 않은 제약 조건 집합에 따라 UINavigationBar의 높이를 44 포인트 또는 64 포인트로 변경합니다. UINavigationController가 뷰 프레임의 상단이 UIWindow의 상단과 시각적으로 인접 해 있다는 것을 감지하면 64 점의 높이를 가진 탐색 막대를 그립니다. 뷰의 상단이 UIWindow의 상단과 연속적이지 않은 경우 (한 지점 만 떨어져도 해당), 네비게이션 막대가 44 포인트의 높이로 "기존"방식으로 그려집니다. 이 논리는 응용 프로그램의 뷰 컨트롤러 계층 구조 아래에 여러 자식이 있더라도 UINavigationController에 의해 수행됩니다. 이 동작을 방지 할 수있는 방법은 없습니다.
지점 (0,20)에서 시작하는 첫 번째 예제에서보기 계층을 배치하는 것처럼 보입니다. 또한 UIToolbar 또는 UINavigationBar입니까? 후자의 경우 UINavigationController 내부에서 사용하지 않는 이유는 무엇입니까?
UINavigationController를 사용하지 않고 대신 사용자 지정보기 컨트롤러 컨테이너를 사용하는 경우 그에 따라보기를 배치해야합니다.
자세한 설명은 this answer을 참조하십시오.
- (void)viewDidLoad {
[super viewDidLoad];
if (NSFoundationVersionNumber>NSFoundationVersionNumber_iOS_6_1) {
CGRect statusBarFrame = [self.view convertRect: [UIApplication sharedApplication].statusBarFrame fromView: nil];
UIToolbar *statusBarBackground = [[UIToolbar alloc] initWithFrame: statusBarFrame];
statusBarBackground.barStyle = self.navBar.barStyle;
statusBarBackground.translucent = self.navBar.translucent;
statusBarBackground.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth;
[self.view addSubview: statusBarBackground];
}
}
네비게이션 바 self.navBar
점은 스토리 보드에 추가 :
는 http://meta.stackexchange.com/questions/94465/should-moderators-enforce-ndas-for-software-vendors –
@Caleb 참조 @Caleb 메타에 대한이 답변에서 찾을 수 있습니다. http://meta.stackexchange.com/questions/184625/why-is-there-an-ios-7-tag/184635#184635 –
@BradLarson 아마도 나는 응답 할 시간을 벌어야합니다. 여기에서하는 대신 메타 스레드로 이동하십시오. 간단히 말해서, 우리는 iOS NDA를 위반하는 질문을 마감 한 역사를 가지고 있으며, 적어도 이러한 질문에 주석을다는 것이 중요하다고 생각합니다. 당신의 입장이 모든 SO 사회자 또는 SE의 입장이라고 일반적으로 말하면, 나는 그 근거로 결론을 내리지 않겠습니다. OTOH 대답 할 수없는 닫는 질문에는 명확한 가치가 있습니다. – Caleb