2017-10-03 65 views
10

Tworzenie nowych kontrolerów widoku z xcode 9, więc mam teraz kilka bezpiecznych obszarów, którymi można się zająć.Jak ustawić niebezpieczny kolor tła obszaru dla ios 11

Obecnie próbuję zrobić coś w pełni odpornego, co oznacza utrzymywanie niebezpiecznego obszaru w jego obecnej postaci (ponieważ zawsze wyświetlam pasek stanu) i kolor tła rozciąga się na pełny ekran (aby zachować podobne zachowanie do tego, co kiedyś mieć).

Dodatkowa uwaga dotyczy również elementów sterujących strony, ponieważ w niektórych przypadkach system umieści je w dolnym obszarze niebezpiecznym, który również będzie wyświetlany na czarno.

Nie mogę znaleźć sposobu, aby kolor tła rozciągał się poza obszar niebezpieczny. Jakieś myśli?

Odpowiedz

8

Wygląda jak hacky podstęp, ale można spróbować to:
Ty można ustawić kolor tła dla paska stanu podczas uruchamiania aplikacji lub podczas viewDidLoad kontrolera widoku. Tutaj to działa dla mnie w następujący sposób.

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



Oto wynik:

enter image description here

+1

Awesome! Dzięki stary –

5

Musisz zastosować różne ograniczenia. Twój kolor tła powinien wykraczać poza bezpieczny obszar do samego superview. Więc twoje ograniczenia muszą być ustawione na SuperView dla koloru tła, ale do bezpiecznego obszaru widoku klawiatury (przyciski, tableViews i podobnych)

+0

Cholera, mam go trzeba nacisnąć Ctrl, aby uzyskać margines kontenera, cholera zestaw System góry do bezpiecznej strefy domyślnie dzięki –

+1

Jeśli robisz to w IB, możesz również wybrać swoje ograniczenie w Koncie dokumentu i użyć Inspektora atrybutów, aby zmienić z Superview na Safe Area i tak dalej. – pesch

+0

Sprawdzę to. –