我在SwiftUI
中实现了以下布局:
VStack {
TextField(...)
TextField(...)
Button(...)
}
我试图使VStack成为超级视图的50%,所以我添加了以下修饰符:
VStack { ... }
.relativeWidth(0.5)
不是超级视图的50%,但我对实现水平居中更感兴趣。有谁知道如何在SwiftUI中实现这一目标?
有一个alignmentGuide(_:computeValue:)
修饰符可用,但我一直在努力提供正确的输入来满足编译器的要求。
答案 0 :(得分:5)
我会使用一些垫片和HStack ...
struct LoginView: View {
@State var myText: String = ""
var body: some View {
HStack {
Spacer()
VStack {
TextField($myText, placeholder: Text("Email"))
.textFieldStyle(.roundedBorder)
.textContentType(.username)
TextField($myText, placeholder: Text("Password"))
.textFieldStyle(.roundedBorder)
.textContentType(.password)
Button(action: {
// Do your login thing here
}) {
Text("Login")
}
}
Spacer()
}
}
}
答案 1 :(得分:2)
它似乎已经居中对齐了。 让HStack知道要占用多少宽度会完美地完成这项工作。经过修改且不带空格后,@ SMP的上述代码将如下所示:
boolean flag = l.stream().anyMatch(h -> h.equals(str));
答案 2 :(得分:0)
您将希望对密码字段使用SecretField
控件,而不是普通的TextField
控件。