Swiftui 在窗体的节内对齐文本和文本字段
另一个简单的SwiftUI任务给我带来了更多的麻烦 我想不出一种方法来正确对齐文本和文本字段 所有HSTack校准似乎都不会产生可接受的结果Swiftui 在窗体的节内对齐文本和文本字段,swiftui,Swiftui,另一个简单的SwiftUI任务给我带来了更多的麻烦 我想不出一种方法来正确对齐文本和文本字段 所有HSTack校准似乎都不会产生可接受的结果 导入快捷键 结构签名:视图{ @State var email:String=“” var body:一些观点{ VStack{ 文本(“登录”) .font(.largeTitle) 形式{ 部分{ HStack{ 文本(“ID”) 文本字段(“电子邮件”,文本:$Email) } } } } } } 结构签名预览:PreviewProvider{ 静
导入快捷键
结构签名:视图{
@State var email:String=“”
var body:一些观点{
VStack{
文本(“登录”)
.font(.largeTitle)
形式{
部分{
HStack{
文本(“ID”)
文本字段(“电子邮件”,文本:$Email)
}
}
}
}
}
}
结构签名预览:PreviewProvider{
静态var预览:一些视图{
签名()
}
}
一种解决方案是使用另一个文本字段而不是文本:
HStack{
文本字段(“,文本:。常量(“ID”))
.fixedSize()
.已禁用(正确)
文本字段(“电子邮件”,文本:$Email)
垫片()
}
不过有点难看。您提到尝试不同的HStack对齐,您是否尝试过
.firstTextBaseline
或.lastTextBaseline
?对于我来说,这两个选项都能正确对齐文本和文本字段。所以那条线变成了
HStack(alignment: .lastTextBaseline) {
完整代码:
import SwiftUI
struct SignIn: View {
@State var email: String = ""
var body: some View {
VStack {
Text("Sign In")
.font(.largeTitle)
Form {
Section {
HStack(alignment: .lastTextBaseline) {
Text("ID")
TextField("Email", text: $email)
}
}
}
}
}
}
struct SignIn_Previews: PreviewProvider {
static var previews: some View {
SignIn()
}
}
我也有同样的问题,答案比我想象的要简单。我最后添加了修饰符.aspectRatio(.fit),这为我修复了它
希望这有帮助 这应该是可以接受的答案,并且它在默认字体大小下工作。但当系统字体大小小于或大于默认值时,文本和文本字段不对齐。我已经向苹果提交了关于这个的bug。