Open1

SwiftUIでSafeAreaInsetsを取得する。

hackenbackerhackenbacker

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がいるのが何となくイヤですが、
GeometryProxynilにならないので、Optional処理が不要なのが利点かなと。
keyWindowを取得するのとどちらがお好みでしょうか?