使用iOS 11时,导航栏的标题视图和栏按钮项不会居中。
而且背景图像的高度不会改变并且不会完整显示。条形高度为74。

ios - iOS 11导航栏被弄乱了-LMLPHP
看到空白。

我已经试过了

if(@available(iOS 11,*)){
    _homeNavigationBar.prefersLargeTitles = NO;
    _homeNavigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
    [_homeNavigationBar setBarTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"navbarBg.png"]]];
}
else{
    [_homeNavigationBar setBackgroundImage:[UIImage imageNamed:@"navbarBg.png"] forBarMetrics:UIBarMetricsDefault];
}

但是我仍然无法将标题和栏按钮项居中。

知道如何解决此问题吗?请让我知道。

最佳答案

子类化导航栏为我完成了窍门。

- (void)layoutSubviews {
[super layoutSubviews];

for (UIView *view in self.subviews) {
    if([NSStringFromClass([view class]) containsString:@"Background"]) {
        view.frame = self.bounds;
    }
    else if ([NSStringFromClass([view class]) containsString:@"ContentView"]) {
        CGRect frame = view.frame;
        frame.origin.y = 25;
        view.frame = frame;
    }
 }
}

关于ios - iOS 11导航栏被弄乱了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46523085/

10-14 16:58
查看更多