2017-09-16 41 views
7

Tôi đang cố gắng để sử dụng tính năng danh hiệu lớn Navigationbar mới trên iOS 11.Thay đổi statusbar trong khi sử dụng tiêu đề lớn đối với thanh điều hướng trên iOS 11

Tuy nhiên, sau khi tôi thêm dòng sau:

self.navigationController?.navigationBar.prefersLargeTitles = true 

Tôi thấy rằng màu nền của navigationBar đã chuyển sang màu đen.

Navigation Bar 1

Vì vậy, tôi thiết lập màu nền lại bằng tay:

self.navigationController?.setBackgroundColor(UIColor(hexString: 0xFF7E79)) 

Tuy nhiên, tôi thấy rằng màu nền Statusbar không thay đổi:

Navigation Bar 2

Sau khi tôi đặt tăng màu nền của statusBar thông qua mã này:

guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return 
statusBar.backgroundColor = UIColor(hexString: 0xFF7E79) 

Nó mang lại cho tôi một dòng xấu xí 1px màu đen như thế này giữa Statusbar và Navigationbar:

Navigation Bar 3

Vì vậy, cách chính xác để thiết lập màu nền của Navigationbar là gì?

Trả lời

4

Cách chính xác để đặt màu nền của UINavigationBar là sử dụng thuộc tính barTintColor.

self.navigationController?.navigationBar.barTintColor = .red 

Bạn có thể nhận thấy rằng màu bạn đặt có thể hơi nhạt. Như đã lưu ý trong tài liệu:

Màu này được làm mờ theo mặc định trừ khi bạn đặt thuộc tính isTranslucent thành false.

See the barTintColor reference on developer.apple.com

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