[英]Adding shapes in List row of SwiftUI
我正在尝试创建一个列表视图,其中行如下所示:
但是,我无法在领先侧对齐Circle
。 尝试在VStack
中使用Spacer()
, HStack
,它只是不起作用。 这是我的代码及其 output。
struct PeopleView: View {
let people = ["Adam", "James"]
var body: some View {
NavigationView {
List {
ForEach(people, id: \.self) { person in
HStack {
Circle()
VStack {
Text("\(person)")
}
}
}
}
.navigationBarTitle("People", displayMode: .inline)
}
}
}
SwiftUI 中的一些视图填满了所有可用空间。 此类视图是形状、colors、垫片、分隔线和GeometryReader
。
你的Circle
是一个形状,它的行为类似于Spacer
(就填充空间而言)。
如果您将Circle
替换为圆形图像,它将起作用:
ForEach(people, id: \.self) { person in
HStack {
Image(systemName: "circle.fill")
.imageScale(.large)
Spacer()
VStack {
Text("\(person)")
}
}
}
发生这种情况是因为您没有为Circle
形状提供固定(或相对)框架,因此Circle
占用了最大可用宽度。
如果你添加一个frame(width:height:)
,一切都应该正常工作:
struct PeopleView: View {
let people = ["Adam", "James"]
var body: some View {
NavigationView {
List {
ForEach(people, id: \.self) { person in
HStack {
Circle()
.frame(width: 50, height: 50)
VStack {
Text("\(person)")
}
}
}
}
.navigationBarTitle("People", displayMode: .inline)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.