2

我正在尝试制作一个包含 x 个图像的 HStack,并将以包装 HStack 方式显示它们(即,如果 7 个图像中只有 4 个适合该行,则将剩余的 3 个图像溢出到下一行)。

我正在尝试使用 WrappingHStack 库(https://github.com/dkk/WrappingHStack),但结果与预期不符,图像没有环绕。

这是我的代码:

    @State var numEarths : Int = 7;
    var body: some View {
        VStack{
        
            Text("If everyone were to live like you, we would need \(numEarths) Earths").font(.title)
            WrappingHStack{
                ForEach(0 ..< numEarths){_ in
                Image("logo")
                
                }
             }
         }
    }

这是模拟器上的结果(请参阅,没有包装)...我们应该看到 7 个地球徽标图像,但您只能看到 4 个(以及一小部分数字 5)。 图片截图

请问有人可以帮我解决这个问题吗?我是 SwiftUI 开发人员的新手,所以如果这是一个愚蠢的错误,请对我轻描淡写。谢谢。

4

1 回答 1

3

根据WrappingHStack图书馆,如果你想实现你上面提到的,你需要做两件事:

  • 给你Image一个frame,以便WrappingHStack可以知道每行要放入多少个元素。
  • ForEach将循环更改为WrappingHStack,因为WrappingHStack可以用作ForEach循环项目。
WrappingHStack(0..<numEarths, id:\.self) { _ in
    Image("logo")
        .resizable()
        .frame(width: 100, height: 100)
}

工作解决方案图片

于 2021-05-22T15:13:15.373 回答