下面的代码是:
VStack(alignment: .leading, spacing: 0) {
HStack(alignment: .center, spacing: 3) {
Text("Hours")
.font(.body.weight(.bold))
}
ScrollViewIfNeeded(.vertical, showsIndicators: false) {
Group {
if item.hours != [] || !item.hours.isEmpty {
ForEach(item.hours, id: \.self) { hour in
Text(hour)
}
} else {
Text("No hours provided.")
}
}
.font(.footnote)
.foregroundColor(.secondary)
}
}
.frame(width: containerWidth * 0.40)
完全不符合.leading
修改器-项目当前在视图中居中。
如果我删除ForEach语句,只进行多个常规的Text("..")
调用,它就可以正常工作,并向左对齐,类似于:
VStack(alignment: .leading, spacing: 0) {
HStack(alignment: .center, spacing: 3) {
Text("Hours")
.font(.body.weight(.bold))
}
ScrollViewIfNeeded(.vertical, showsIndicators: false) {
Group {
Text("Hello1")
Text("Hello2")
Text("Hello3")
}
.font(.footnote)
.foregroundColor(.secondary)
}
}
.frame(width: containerWidth * 0.40)
上面的工作刚刚好,并向左对齐。
有人知道ForEach语句与对齐有什么区别吗?
更新:let item: Place
〈-项目的定义。
struct Place: Codable, Identifiable {
var hours = [String]()
// MARK: - SET DEFAULT PROPERTIES
static var `default` : Place {
Place(
hours: ("Hours")
)
}
init(
hours: (String)
) {
self.hours = [hours]
}
init(with p: MGLocation) {
self.hours = p.hours ?? []
}
}
1条答案
按热度按时间yc0p9oo01#
我发现,很奇怪,你必须在ScrollView内部传递一个VStack,不管你是否在ScrollView外部定义了一个VStack:
奇怪,但它的工作!