39f*_*edy 6 swift watchos swiftui swiftui-list
我在 a 内的循环内部有一个VStackwith 对齐,并且对齐参数没有得到尊重。如果我有一个循环外部,则正在使用对齐参数并且视图会正确显示。.leadingForEachScrollViewVStackForEach
ScrollView{
// THIS DISPLAYS CORRECTLY
VStack(alignment: .leading){
Text("namename")
.font(.headline)
.lineLimit(1)
Text("namename name")
.font(.subheadline)
.lineLimit(1)
}
.padding()
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.gray.opacity(0.20))
.cornerRadius(5)
.padding(.bottom)
ForEach(self.list_of_names, id: \.self) { item in
// THIS DOES NOT DISPLAY CORRECTLY
VStack(alignment: .leading){
Text(item)
.font(.headline)
.lineLimit(1)
Text(item + " name")
.font(.subheadline)
.lineLimit(1)
}
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.gray.opacity(0.20))
.cornerRadius(5)
.padding(.bottom)
}
}
.padding()
Run Code Online (Sandbox Code Playgroud)
第一行对齐正确,位于ForEach循环外部,同时其他行位于循环内部。蓝线代表我突出显示循环VStack内的每条线ForEach
小智 12
ForEach 循环中创建的 VStack 似乎确实符合对齐参数。将文本与前缘对齐仅适用于 VStack 中较短的项目。
在顶部 VStack 中,顶部的“namename”仅距左侧那么远,因为下面的“namename name”距离 ScrollView 中心要宽得多。因此,顶部 VStack 并不是完全实现您想要的 ScrollView 对齐的正确方法。
您正在寻找什么:
保留 VStack 的对齐参数。
将对齐参数添加到VStack的框架中。
.frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2579 次 |
| 最近记录: |