SwiftUI/GeomtryReader in ScrollViewは意図しないsizeが渡ってくるので、ScrollView in GeometryReaderを使う
環境
code:sh
$xcodebuild -version
Xcode 14.3
Build version 14E222b
/icons/hr.icon
上手く行かない
https://scrapbox.io/files/648c6d2c40f6c1001baa1ec1.png
code:swift
import SwiftUI
struct ContentView: View {
var body: some View {
ScrollView {
GeometryReader { geometry in
VStack(
alignment: .leading,
spacing: 0
) {
Text("width: \(geometry.size.width)")
.padding(100)
Text("height \(geometry.size.height)")
.padding(100)
}
.background(Color.red)
}
}
}
}
こうする
https://scrapbox.io/files/648c6d9b8e58f1001c57974d.png
code:swift
import SwiftUI
struct ContentView: View {
var body: some View {
GeometryReader { geometry in
ScrollView {
VStack(
alignment: .leading,
spacing: 0
) {
Text("width: \(geometry.size.width)")
.padding(100)
Text("height \(geometry.size.height)")
.padding(100)
}
.background(Color.red)
}
}
}
}
メモ
情報量が少ない
GeometryReader in ScrollViewで取れる高さは一律で10っぽい?
想像だけどScrollViewが取る最初のsize.heightが10で、GeometryReaderはそれを読んだっきり、という感じかな
関連