2017-09-22 75 views
5

Trong thanh điều hướng ios 11 là thanh trạng thái chồng chéo. Nếu bất kỳ cơ thể nào phải đối mặt với cùng một vấn đề vui lòng giúp đỡ.ios 11 thanh điều hướng chồng lên thanh trạng thái

enter image description here

+0

Đó là lỗi xcode9 .. mọi thứ bạn đã làm là tốt, tất cả chúng ta đều phải đối mặt với cùng một vấn đề. Tôi hiện đang tải xcode8.3.3 và sẽ làm việc từ đó cho đến khi họ phát hành bản sửa lỗi – Faisal

+0

@Faisal Sẽ hữu ích nếu bạn đăng liên kết lỗi tại đây. – Sravan

+1

@Sravan https://stackoverflow.com/questions/46138245/how-to-change-navigationbar-height-in-ios-11/46138389?noredirect=1#comment79643281_46138389 bạn có thể thấy mọi người thảo luận về cùng một vấn đề ở đây và xác định bug – Faisal

Trả lời

-3

Một hạ cấp xuống XCode 8.3.3 làm việc để có được xung quanh vấn đề này.

0

Không chắc nếu đây là vấn đề tương tự, nhưng chúng tôi chạy vào này là tốt khi nâng cấp lên iOS 11.

Xem ios 11 custom navbar goes under status bar

Chúng tôi đã tự thiết lập chiều cao thanh nav đến 64 và ghim vào SuperView cạnh. Tuân theo giao thức UINavigationBarDelegate và triển khai phương thức ủy nhiệm UIBarPositioningDelegate đã giải quyết nó cho chúng ta.

Chúng tôi thay thế

navigationBar.autoPinEdgesToSuperviewEdgesExcludingEdge(.bottom) 
navigationBar.autoSetDimension(.height, toSize: 64) 

với

... 
    if #available(iOS 11.0, *) { 
    navigationBar.topAnchor.constraint(
     equalTo: self.view.safeAreaLayoutGuide.topAnchor 
    ).isActive = true 
    } else { 
    navigationBar.topAnchor.constraint(
     equalTo: topLayoutGuide.bottomAnchor 
    ).isActive = true 
    } 
    navigationBar.autoPinEdge(toSuperviewEdge: .left) 
    navigationBar.autoPinEdge(toSuperviewEdge: .right) 
    navigationBar.delegate = self 
... 

public func position(for bar: UIBarPositioning) -> UIBarPosition 
    return .topAttached 
} 

này được sử dụng DSL purelayout cho một số các cuộc gọi autolayout (https://github.com/PureLayout/PureLayout)

tín dụng đi vào https://stackoverflow.com/users/341994/matt cho câu trả lời

0

Có vấn đề tương tự. Trong trường hợp của tôi nó bật ra rằng bộ điều khiển xem trước đó đã tùy chỉnh thanh nav và do đó nó đã được ẩn cả hai - nav bar và thanh trạng thái. Có

UIApplication.shared.setStatusBarHidden(true, with: UIStatusBarAnimation.none) 
UIApplication.shared.setStatusBarStyle(.default, animated: false) 

Và trong bộ điều khiển xem có vấn đề tôi đã này:

UIApplication.shared.setStatusBarStyle(.default, animated: false) 
UIApplication.shared.setStatusBarHidden(false, with: UIStatusBarAnimation.none) 

Vấn đề này đã được cố định chỉ đơn giản bằng cách đặt hai dòng theo đúng thứ tự:

UIApplication.shared.setStatusBarHidden(false, with: UIStatusBarAnimation.none) 
UIApplication.shared.setStatusBarStyle(.default, animated: false) 

Tất cả mọi thứ ở trên là không dùng nữa, do đó, một sửa chữa có thể có thể sẽ thay đổi điều này theo cách được khuyến nghị để ẩn thanh trạng thái (chưa lý tưởng như được thảo luận tại đây: setStatusBarHidden deprecated, but only thing that works).

Các vấn đề liên quan