2017-10-03 20 views
10

Tạo một số bộ điều khiển chế độ xem mới với xcode 9 vì vậy bây giờ tôi có một số khu vực an toàn để xử lý.Cách đặt màu nền khu vực không an toàn cho ios 11

Tôi hiện đang cố gắng làm điều gì đó đầy đủ, có nghĩa là giữ vùng không an toàn vì nó luôn hiển thị thanh trạng thái và mở rộng màu nền cho toàn màn hình có).

Trên ghi chú bổ sung, điều này cũng ảnh hưởng đến điều khiển trang vì khi bạn có một số hệ thống sẽ đặt chúng ở khu vực không an toàn dưới cùng cũng sẽ được hiển thị bằng màu đen.

Tôi không thể tìm thấy cách để màu nền mở rộng phía sau khu vực không an toàn. Bất kỳ suy nghĩ nào?

Trả lời

8

Dường như một mẹo hack nhưng bạn có thể thử điều này:
Bạn có thể đặt màu nền cho thanh trạng thái trong khi khởi chạy ứng dụng hoặc trong khi viewDidLoad của trình điều khiển chế độ xem của bạn. Ở đây nó làm việc cho tôi, theo những cách sau.

extension UIApplication { 

    var statusBarView: UIView? { 
     return value(forKey: "statusBar") as? UIView 
    } 

} 


or 
// Set it from your view controller if you've view controller based statusbar 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     UIApplication.shared.statusBarView?.backgroundColor = UIColor.green 
    } 

} 


// Set upon application launch, if you've application based status bar 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
     UIApplication.shared.statusBarView?.backgroundColor = UIColor.green 
     return true 
    } 
} 



Dưới đây là kết quả:

enter image description here

+1

Tuyệt vời! Cảm ơn bạn –

5

Bạn phải áp dụng các ràng buộc khác nhau. Màu nền của bạn nên mở rộng ra ngoài khu vực an toàn đến tận mắt người giám sát. Vì vậy, các ràng buộc của bạn cần phải được đặt thành superview cho màu nền của bạn nhưng đến khu vực an toàn cho giao diện ui của bạn (các nút, tableViews và các loại tương tự)

+0

Chết tiệt, có nó, bạn phải nhấn Ctrl để có được lợi nhuận container, chết tiệt hệ thống thiết lập trên xuống khu vực an toàn theo mặc định, nhờ –

+1

Nếu bạn đang làm điều này trong IB, bạn cũng có thể chọn ràng buộc của bạn trong Outline tài liệu và sử dụng Attributes Inspector để thay đổi từ Superview sang Safe Area và cứ thế – pesch

+0

Tôi sẽ kiểm tra điều đó. –

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