내가 그 설정 버튼의 폰트 크기 설정되었다고 밝혀 (단지이 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 . 그리고 지금은 너무 혼잡하지, 풍경 좋아 보인다 :
불행히도이 솔루션은 'UIBarButtonItem'에서 _bottom 패딩을 제거하지 않으며 이미지와도 작동하지 않습니다. 조사했지만 만족스러운 해결책을 찾을 수 없었습니다. 풍경 모드에서 이미지를 좀 더 낮추기 위해 사용할 수있는'barButtonItem.ImageInsets' 속성이 있습니다.또한, 'UINavigationController'에서 뷰를 팝하고 그것을 다시 (프리 스케이프에서) 밀어 넣으면, iOS는 자동으로 UINavigationBar의 UIBarButtonItem을 중심에 배치합니다. 또 다른 문제점은 _backButton_입니다. ImageInsets 속성으로 푸시 다운 할 수 없습니다. 아마도 iOS 버그 일 수 있습니다. – tomec