2017-10-19 57 views

Odpowiedz

55

Spróbuj tego:

W Objective C

if (@available(iOS 11.0, *)) { 
    UIWindow *window = UIApplication.sharedApplication.keyWindow; 
    CGFloat topPadding = window.safeAreaInsets.top; 
    CGFloat bottomPadding = window.safeAreaInsets.bottom; 
} 

W Swift

if #available(iOS 11.0, *) { 
    let window = UIApplication.shared.keyWindow 
    let topPadding = window?.safeAreaInsets.top 
    let bottomPadding = window?.safeAreaInsets.bottom 
} 
14

Aby uzyskać wysokość pomiędzy układ prowadzi cię po prostu zrobić

let guide = view.safeAreaLayoutGuide 
let height = guide.layoutFrame.size.height 

Więc full frame height = 812.0, safe area height = 734.0

Poniżej jest przykład, gdzie zielony widok ma ramę guide.layoutFrame

enter image description here

+0

zaktualizowałem odpowiedź – Ladislav

+0

Dzięki który był głównym Byłem też myśleć. Nie sądzę, że istnieje bardziej niezawodne rozwiązanie. Ale dzięki temu osiągam tylko niebezpieczną wysokość, prawda? Nie dwie wysokości dla każdego obszaru? – Tulleb

+0

Po utworzeniu widoków otrzymasz poprawną odpowiedź. – Ladislav