SwiftUI ScrollView 内容高度
SwiftUI ScrollView content height
我在尝试确定 ScrollView 内视图的高度时遇到问题
struct ContentView: View {
var body: some View {
ScrollView{
GeometryReader { geometry in
VStack{
ForEach(0..<90) { index in
Text("test \(geometry.size.height)")
}
}
}
}
}
}
geometry.size.height 总是 10.000。
我该如何纠正这个意外的结果?
非常感谢!
我不确定你打算用这个做什么。
GeometryReader
读取提供给视图的大小,而不是视图的大小。您可以通过将 GeometryReader
放在 VStack
的 .overlay
中来了解视图有多大,因为在创建叠加层时,VStack
的大小将已经建立并且该尺寸将提供给覆盖。
struct ContentView: View {
var body: some View {
ScrollView{
VStack{
ForEach(0..<90) { index in
Text("test 000000000000")
.opacity(0)
}
}
.overlay(
GeometryReader { geometry in
VStack {
ForEach(0..<90) { index in
Text("test \(geometry.size.height)")
}
}
}
)
}
}
}
我在尝试确定 ScrollView 内视图的高度时遇到问题
struct ContentView: View {
var body: some View {
ScrollView{
GeometryReader { geometry in
VStack{
ForEach(0..<90) { index in
Text("test \(geometry.size.height)")
}
}
}
}
}
}
geometry.size.height 总是 10.000。
我该如何纠正这个意外的结果?
非常感谢!
我不确定你打算用这个做什么。
GeometryReader
读取提供给视图的大小,而不是视图的大小。您可以通过将 GeometryReader
放在 VStack
的 .overlay
中来了解视图有多大,因为在创建叠加层时,VStack
的大小将已经建立并且该尺寸将提供给覆盖。
struct ContentView: View {
var body: some View {
ScrollView{
VStack{
ForEach(0..<90) { index in
Text("test 000000000000")
.opacity(0)
}
}
.overlay(
GeometryReader { geometry in
VStack {
ForEach(0..<90) { index in
Text("test \(geometry.size.height)")
}
}
}
)
}
}
}