如何将水平图像列表居中SwiftUI
如果我的后端服务器发送给我的图像少于7ı,我想将我的水平社交媒体图像列表居中。如果我得到7个社交媒体图标,它看起来没问题,但如果我得到2个、3个或5个图标,我想将它们始终显示在中心位置。我的意思是 在第二张图片中,你们可以看到它们看起来是分开的,但我想把它们一起显示在中间位置。我该怎么做 这是我的密码如何将水平图像列表居中SwiftUI,swift,swiftui,Swift,Swiftui,如果我的后端服务器发送给我的图像少于7ı,我想将我的水平社交媒体图像列表居中。如果我得到7个社交媒体图标,它看起来没问题,但如果我得到2个、3个或5个图标,我想将它们始终显示在中心位置。我的意思是 在第二张图片中,你们可以看到它们看起来是分开的,但我想把它们一起显示在中间位置。我该怎么做 这是我的密码 HStack(alignment:.center,spacing : 0) { ForEach(data.options ?? [] , i
HStack(alignment:.center,spacing : 0) {
ForEach(data.options ?? [] , id:\.id) { item in
if item.icon != nil {
Image(uiImage:(item.icon ?? "").load())
.resizable()
} else {
GeometryReader { geometry in
Image(item.type ?? "")
.resizable()
.frame(width:UIScreen.main.bounds.width * 0.065,alignment:.center)
.frame(width:geometry.size.width / 1,height:25,alignment:.center)
}
}.padding(EdgeInsets(top: 0, leading: 0, bottom: UIScreen.main.bounds.height * 0.050, trailing: 0))
}
}
您是否尝试过在每一侧添加间隔垫圈()?在ForEach语句之前添加一个,在ForEach语句之后添加另一个。我想这会让他们走得更近 因此:
您是否尝试过在每一侧添加间隔垫圈()?在ForEach语句之前添加一个,在ForEach语句之后添加另一个。我想这会让他们走得更近 因此:
我无法重播您的数据项,您没有共享结构,但它的工作方式如下:
我无法重播您的数据项,您没有共享结构,但它的工作方式如下:
它不起作用。实际上,它显示在一起,但在所有宽度上只有两个图标,因此图标看起来很大。您可以调整图标的大小,但没有进一步的修改器。如果您添加了一些限制其大小的图标(如.frame(高度:50)),这可能会有所帮助。我尝试过,但也不起作用。它不起作用。实际上,它显示在一起,但在所有宽度上只有两个图标,因此图标看起来很大。您可以调整图标的大小,但没有进一步的修改器。如果您添加了一些限制其大小的图标(如.frame)(身高:50),可能会有帮助。我试过了,但也没用。
HStack {
Spacer()
ForEach {
Code
}
Spacer()
}
struct Icon: Identifiable, Hashable {
var name: String
var icon: Image? {return Image(name)}
public var id:String {return self.name}
}
struct ContentView: View {
@State var icons: [Icon] = [Icon(name:"1")]
@State var prog = 1
var body: some View {
VStack {
Button(action: {
prog += 1
icons.append(Icon(name:String(prog)))
}, label: {
Text("Add")
})
Button(action: {
prog -= 1
icons.removeLast()
}, label: {
Text("Remove")
})
HStack(alignment:.center,spacing : 0) {
ForEach(icons, id:\.self) { item in
if item.icon == nil {
EmptyView()
}
else {
item.icon!
.resizable()
.frame(width:UIScreen.main.bounds.width * 0.085,height:UIScreen.main.bounds.width * 0.085,alignment:.center)
.padding(6)
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}