问题描述
我正在 SwiftUI 中编写一个应用程序,我希望能够使用 GeometryReader
计算出我在应用程序顶部的 TextField 下方多远。但无论我尝试什么,我使用的 .coordinateSpace()
修饰符似乎总是与 .global
或 .local
相同,如下面的示例代码所证明的那样,这会导致附加图像。
如您所见,所有 .named()
几何框架都与 .global
或 .local
框架相同,这使我得出结论,我一定做错了什么,但我不能t为我的生活工作出什么。有人可以帮忙吗?
我正在使用 macOS 11.3.1 和 XCode 12.5 模拟 iOS 14.5。
import SwiftUI
struct ContentView: View {
@State private var inputText = ""
var body: some View {
GeometryReader { fullView in
NavigationView {
vstack {
TextField("Enter text",text: $inputText)
.padding()
.coordinateSpace(name: "textField")
List {
ForEach(0..<10) { item in
GeometryReader { geo in
HStack {
Text("\(geo.frame(in: .global).midY,specifier: "%.0f")")
Text("\(geo.frame(in: .local).midY,specifier: "%.0f")")
Text("\(geo.frame(in: .named("textField")).midY,specifier: "%.0f")")
Text("\(geo.frame(in: .named("geometry")).midY,specifier: "%.0f")")
Text("\(geo.frame(in: .named("list")).midY,specifier: "%.0f")")
}
}
.coordinateSpace(name: "geometry")
}
}
.coordinateSpace(name: "list")
}
.navigationBarTitle("Test project")
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)