環境
Swift 5
内容
とある子ビューでiPhoneX~の対策としてSafeAreaInsetsが欲しい。
safeAreaInsetsはrootViewにあるので、こんな感じでrootViewから取得してきていた。
var rootView: UIView = self
while true {
if let v = rootView.superview {
rootView = v
} else {
break
}
}
let bottomMargin = rootView.safeAreaInsets.bottom
でも、UIWindowからも取得できると知り、下記のようにした。スマートである。
let bottomMargin = self.window?.safeAreaInsets.bottom ?? 0