2014-09-26 4 views
2

iOS 8에서는 가로 모드에 상태 막대가 숨겨져있는 것 같습니다. 하나는 괜찮 get the status bar back, 할 수있다,하지만이 내 응용 프로그램의 탐색 표시 줄이 시뮬레이터 스크린 샷에서 볼 수 있듯이 상위 몇 픽셀, 차단이 점을 제외하고 숨겨진 된에 사실은 이의가 없다 :iOS 8의 탐색 메뉴 항목 높이를 가로로 고정하려면 어떻게해야하나요?

iOS 8 landscape orientation cuts off navigation bar pixels

톱니 바퀴 아이콘이 화면 상단에 어떻게 보이는지 보시겠습니까? 그것보다 조금 더 숨쉴 공간이 있어야합니다.

상태 표시 줄을 복원하는 것이 더 좋지만 탐색 모음에 약간의 공간이 있으면 상황을 벗어날 수 있습니다. iOS 8에서 메시지 앱을 공부하면 탐색 바 높이가 내가 본 것과 동일하지만 작성 버튼이 작아지는 것을 알 수 있습니다. 가로로 탐색 모음 항목의 크기를 줄이기 위해 앱을 업데이트하려면 어떻게해야합니까?

답변

2

내가 그 설정 버튼의 폰트 크기 설정되었다고 밝혀 (단지이 U+2699 (⚙) 제목에 대한) -viewDidLoad에서 :

가 수평 방향으로 너무 커서 이유
UIBarButtonItem *settingsButton = self.navigationItem.leftBarButtonItem; 
[settingsButton setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:28]} 
           forState:UIControlStateNormal 
]; 

iOS 8, 다만 바로 초상화에서.

이 문제를 해결하기 위해, I는 -viewDidLoad로부터이 코드를 삭제하고 크기 조정 처리하는 두 개의 새로운 방법을 추가 :

- (void)setSettingsButtonFontSize:(CGFloat)size { 
    UIBarButtonItem *settingsButton = self.navigationItem.leftBarButtonItem; 
    [settingsButton setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:size]} 
            forState:UIControlStateNormal 
    ]; 
} 

- (void)setSettingsButtonFontSizeForVerticalSizeClass:(UIUserInterfaceSizeClass)sizeClass { 
    [self setSettingsButtonFontSize:sizeClass == UIUserInterfaceSizeClassCompact ? 20 : 28]; 
} 

첫 번째 방법은 단순히 지정된 폰트 크기를 설정하는 단계; 두 번째는 크기 클래스 매개 변수를 기반으로 크기를 선택합니다.

제대로 크기로를 얻으려면, 나는 -viewWillAppear:이 코드를 추가 :

if ([self respondsToSelector:@selector(traitCollection)]) { 
    [self setSettingsButtonFontSizeForVerticalSizeClass:self.traitCollection.verticalSizeClass]; 
} else { 
    [self setSettingsButtonFontSize:28]; 
} 

그래서 내가 iOS 7의 원래 동작을 얻을 수 있지만, 아이폰 OS 8, 아이콘이 20 세로 크기로 크기가됩니다 클래스는 컴팩트합니다.

그리고 마지막으로, 나는 회전 처리 할 수있는 새로운 - 투 - 아이폰 OS-8 방법 추가 : 그래서 지금

- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection 
       withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 
{ 
    [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator]; 
    [self setSettingsButtonFontSizeForVerticalSizeClass:newCollection.verticalSizeClass]; 
} 

을, 아이폰에 아이폰 OS 8, 기어는 세로에서 가로 방향으로 20 28 . 그리고 지금은 너무 혼잡하지, 풍경 좋아 보인다 :

Proper UIBarButtonItem font sizing on iOS 8

+0

불행히도이 솔루션은 'UIBarButtonItem'에서 _bottom 패딩을 제거하지 않으며 이미지와도 작동하지 않습니다. 조사했지만 만족스러운 해결책을 찾을 수 없었습니다. 풍경 모드에서 이미지를 좀 더 낮추기 위해 사용할 수있는'barButtonItem.ImageInsets' 속성이 있습니다.또한, 'UINavigationController'에서 뷰를 팝하고 그것을 다시 (프리 스케이프에서) 밀어 넣으면, iOS는 자동으로 UINavigationBar의 UIBarButtonItem을 중심에 배치합니다. 또 다른 문제점은 _backButton_입니다. ImageInsets 속성으로 푸시 다운 할 수 없습니다. 아마도 iOS 버그 일 수 있습니다. – tomec

0

프레임을 잘못된 위치에서 조정 중일 수 있습니다. viewDidLayoutSubviews 방법으로 모든 프레임 (즉, 기어 프레임)을 설정하는 것이 좋습니다.

+0

어, 그것은 모든 스토리 보드에서 이루어집니다. – theory

+0

실험으로 탐색 모음의 '반투명'속성을 NO로 설정하고 문제가 계속 발생하는지 확인해보십시오. – spybart

+0

iOS 8의 메시지 앱을 공부하면 탐색 막대의 높이가보고있는 것과 같지만 탐색 항목 *이 작아짐을 알 수 있습니다. * 그래서 어떻게하는지 묻는 질문을 업데이트했습니다. – theory