这是在 Xcode 16.2 中使用 iOS 18 SDK,构建目标 iOS 17。
我有一些非常简单的代码:
List {
HStack {
TextField("Some field", text: .constant("Hello"))
Text("km")
}
Text("Hello")
}
当我运行它时,两个列表行之间的分隔符消失在TextField
部分下方:
然而,当我删除该Text("km")
行时,一切都按预期工作:
List {
HStack {
TextField("Some field", text: .constant("Hello"))
}
Text("Hello")
}
我不知道这是怎么回事。有什么建议吗?
SwiftUI 的默认分隔符位置依赖于 List 的直接子项的布局信息。当您只有 HStack 视图时,布局系统可能没有足够的信息来可靠地确定在何处绘制分隔符,尤其是当 HStack 内容未完全跨越列表行的宽度时。
你可以使用这段代码得到相同的行为
SwiftUI 尝试自动将一行中的元素与分隔符对齐,但并不总是能成功。
您可以使用修饰符手动指定希望分隔符与哪个元素对齐,如下所示
alignmentGuide
: