首页 > 解决方案 > 如何使用 ForEach SwiftUi 向 HStack 添加元素

问题描述

我对 Swift 相当陌生,我正在尝试生成元素的 HStack(将在进度条中使用)并能够使用按钮添加元素。我不确定是否应该在 ForEach(1..<Variable) 部分中使用变量或使用其他方法。这是我到目前为止的代码,但它不起作用。

struct ContentView: View {
@State var fill : CGFloat = 0

@State var NumberOfCircles : Int = 0 var body: some View {

            HStack(spacing:100) {

                ForEach(0..<NumberOfCircles){ _ in
                   MyShape()

}

        Button(action: {NumberOfCircles = 5}, label: {
            Text("Button")
            
        })
        
    }

标签: variablesswiftuiprogress-barhstackswiftui-foreach

解决方案


我不确定你的问题是什么,但我测试了这段代码并且它有效:

struct ContentView: View {
    @State var numberOfCircles = 1
    var body: some View {
        VStack {
            HStack {
                ForEach(0..<numberOfCircles, id:\.self) { _ in
                    Circle()
                        .frame(width: 30, height: 30)
                }
            }
            Button { numberOfCircles = 5 } label: {
            Text("Add Circles")
        }
            
        }
    }
}

顺便说一句,Swift 中变量的命名约定是 camelCase。这意味着声明一个变量你应该命名它numberOfCircles ,而不是NumberOfCircles . 第一个大写字母保留用于命名类、结构和协议。


推荐阅读