Open1
SwiftUIでSafeAreaInsetsを取得する。
SwiftUIでSafeAreaInsets
を取得したい場合、keyWindow
から取得する方法をよく見かけるが、GeometryReader
を使う方法もあるので紹介する。
import SwiftUI
struct SomeView: View {
var body: some View {
GeometryReader { proxy in
let bottom = proxy.safeAreaInsets.bottom
Text("bottom: \(bottom)")
}
}
}
トップにGeometryReader
がいるのが何となくイヤですが、
GeometryProxy
がnil
にならないので、Optional
処理が不要なのが利点かなと。
keyWindow
を取得するのとどちらがお好みでしょうか?