如何控制SwiftUI表单中的自动分隔符?

v8wbuo2f  于 2022-12-22  发布在  Swift
关注(0)|答案(1)|浏览(123)

我很好奇,我们有没有办法控制(或理解)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)
        }
    }
}

结果如下:

这似乎与我在密码字段顶部堆叠的Text有关。如果我将其Text更改为Image(systemName: "lock"),那么一切都如您所料:

请注意,我甚至不明白为什么它没有延伸到整个形式的方式在这种情况下。假设这是故意的,有人看到任何官方关于这种情况?我们知道如何控制这一点吗?

yrwegjxp

yrwegjxp1#

在iOS 16中,列表/表单行分隔符自动插入并与文本对齐。在iOS 16中,我们获得了两种新的对齐方式,listRowSeparatorLeadinglistRowSeparatorTrailing,用于alignmentGuide(_:computeValue:)

ZStack(alignment: .trailing) {
    TextField("password", text:$passwd)
    Text("8 chars min")
        .font(.caption)
        .foregroundColor(.secondary)
}
.alignmentGuide(.listRowSeparatorLeading) { viewDimensions in
    return 0
}

相关问题