2015-09-30 76 views
3

有一個自定義的導航欄,它可以很好地運行到iOS 9。 橫向模式下出現奇怪的邊距。iOS 9:UINavigationBar風景中不需要的邊距

enter image description here

標準代碼用於創建這種佈局。

- (UIBarButtonItem*)leftMenuButton { 
    UIButton *menuBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [menuBtn setImage:[UIImage imageNamed:@"menu_button.png"] forState:UIControlStateNormal]; 

    UIView *backArea = [[UIView alloc] initWithFrame:CGRectMake(0, 0, menuBtn.frame.size.width, menuBtn.frame.size.height)]; 
    [backArea addSubview:menuBtn]; 

//layer border are enabled just for issue visualization  
    backArea.layer.borderColor = [UIColor redColor].CGColor; 
    backArea.layer.borderWidth = 1; 
    menuBtn.layer.borderColor = [UIColor greenColor].CGColor; 
    menuBtn.layer.borderWidth = 2; 

    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backArea]; 
    return backItem; 
} 
+0

將約束條件設置爲menuBtn。 –

+0

這是非常舊的項目,它不使用自動佈局 – heximal

回答

2

我也偶然發現了這一點。當設備處於橫向模式時,iOS 9中的導航欄未對齊內容。它看起來像條內容的位置,以便它適合Compact指標,即使條仍然使用Default指標(例如,在UINavigationController以外使用時)。看起來棒是以某種方式耦合屏幕方向。真是一團糟。

編輯:打開雷達#23027275。