2017-10-02 7 views
2

Mit iOS 11 Navigationsleiste Titelleiste und Bar-Taste Element ist nicht zentriert. Auch die Höhe des Hintergrundbilds ändert sich nicht und wird nicht vollständig angezeigt. Die Balkenhöhe ist 74.iOS 11 UINavigation Bar ist vermurkst

Siehe den Leerraum.

Ich habe versucht, diese

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]; 
} 

Aber ich bin immer noch nicht den Titel und die Bar-Taste Element zu zentrieren.

Jede Idee, wie ich dieses Problem beheben kann? Me Bitte lassen

+0

https://stackoverflow.com/questions/46326554/ios-11-custom-navbar-goes-under-status-bar – iPatel

Antwort

0

Vererben der Navigationsleiste know.Thanks für mich den Trick.

- (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; 
    } 
} 
} 
+0

25 sollte 20 als Statusleiste sein Höhe 20 ... –

+0

Dies ist **falsch**. Die Statusleiste war in früheren iOS-Versionen _sometimes_ 20 high. (könnte auch 40 sein). Sie sollten niemals eine feste Höhe annehmen. –