Cur*_*rge 2 swift swiftui ios16
我很好奇,有没有一种方法可以控制(或理解) swiftui 在项目之间放置的自动分隔线?
下面是一些显示奇怪行为的代码(在 iOS 模拟器上):
struct FormSeparator: View {
@State private var passwd = ""
var body: some View {
Form {
ZStack(alignment: .trailing) {
TextField("password", text:$passwd)
Text("8 chars min")
.font(.caption)
.foregroundColor(.secondary)
}
TextField("confirm", text:$passwd)
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
Text这似乎与我堆叠在密码字段顶部的内容有关。如果我将其文本更改为,Image(systemName: "lock")那么一切都会按您的预期进行:
请注意,我什至不明白为什么在这种情况下它没有一直延伸到整个表单。大概这是故意的,有人见过关于这种情况的官方信息吗?我们知道如何控制它吗?
在 iOS 16 中,列表/表单行分隔符会自动插入并与文本对齐。在 iOS 16 中,我们获得了两个新的对齐方式listRowSeparatorLeading和listRowSeparatorTrailing,可以与 一起使用alignmentGuide(_:computeValue:)。
ZStack(alignment: .trailing) {
TextField("password", text:$passwd)
Text("8 chars min")
.font(.caption)
.foregroundColor(.secondary)
}
.alignmentGuide(.listRowSeparatorLeading) { viewDimensions in
return 0
}
Run Code Online (Sandbox Code Playgroud)