はじめに
positionで画面の隅に図形を移動させたい事があり、苦戦したので記録しておきます。
こんな感じ
実装
import SwiftUI
struct ContentView: View {
+ private var rect: CGRect {
+ let scenes = UIApplication.shared.connectedScenes
+ let windowScene = scenes.first as? UIWindowScene
+ return windowScene?.windows.first?.screen.bounds ?? .init()
+ }
+ private var safeareaInsets: UIEdgeInsets {
+ let scenes = UIApplication.shared.connectedScenes
+ let windowScene = scenes.first as? UIWindowScene
+ return windowScene?.windows.first?.safeAreaInsets ?? .init()
+ }
var body: some View {
VStack {
Text("テスト")
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.padding(20)
.background(content: backgroundView)
}
private func backgroundView() -> some View {
ZStack {
Circle()
.frame(width: 30, height: 30)
.foregroundColor(.blue)
+ .position(x: rect.minX, y: rect.minY - safeareaInsets.top)
Circle()
.frame(width: 30, height: 30)
.foregroundColor(.blue)
+ .position(x: rect.maxX, y: rect.maxY - safeareaInsets.top - safeareaInsets.bottom)
}
}
}
おわり
どうなってるのか分からずめっちゃ時間かかりました。