问题描述
我最近从 UIKit 迁移到 SwiftUi 2.0,我正在使用 SwiftUI 重建我的应用程序。在 UIKit 中,我有一个文本框,在该文本框中我有一个发布按钮,我试图在 SwiftUi 中做同样的事情,但没有成功。在下面的 SwiftUi 图像中,您可以看到 Text 位于 TextField 之外。这是我对该地区的代码
HStack {
TextField("",text: $Postdata)
.textFieldStyle(RoundedBorderTextFieldStyle())
.frame(height: 38)
Text("Post")
.foregroundColor(.white)
.padding(.trailing,10)
}
这就是它在 UIKit 中的样子
这就是我在 SwiftUI 中的方式,因为您可以看到帖子文本在 TextField 之外,任何建议都会很棒
解决方法
使用ZStack
,我们可以在z轴上排列视图。
Spacer() 也不会像 EmptyView()
一样阻止任何视图粘贴、拖动等。它只提供空格作为名称本身。
struct ContentView: View {
@State var postdata = ""
var body: some View {
ZStack {
TextField("",text: $postdata)
.textFieldStyle(RoundedBorderTextFieldStyle())
.frame(height: 38)
HStack {
Spacer()
Button(action: {
},label: {
Text("Post")
.bold()
.foregroundColor(.green)
.padding(.trailing,10)
})
}
}
}
}