【问题标题】:SwiftUI List Item Increase CountSwiftUI 列表项增加计数
【发布时间】:2021-06-25 09:01:22
【问题描述】:

我想在每一行都放置计数器,它们彼此独立。我不能用下面的代码做到这一点。我该如何实现?

NavigationView {
        List {
            VStack{
                @State var number=0;
                Text(\(number))
                Button(action: { number+=1 }) { Text("increase") }
            }
            VStack{
                @State var number=0;
                Text(\(number))
                Button(action: { number+=1 }) { Text("increase") }
            }
            VStack{
                @State var number=0;
                Text(\(number))
                Button(action: { number+=1 }) { Text("increase") }
            }
        }
        .navigationTitle("Counters")
    }

【问题讨论】:

  • 如果计数器是独立的,可以创建3个独立的number变量
  • 声明不能在正文中,必须在外面

标签: ios swift swiftui swiftui-list


【解决方案1】:

您需要在body 函数之外声明每个计数器的状态,并在每个按钮内更改它们。

struct ContentView: View {
    @State var number1 = 0
    @State var number2 = 0
    @State var number3 = 0

    var body: some View {
        NavigationView {
            List {
                VStack {
                    Text("\(number1)")
                    Button(action: { number1 += 1 }) { Text("increase") }
                }
                VStack {
                    Text("\(number2)")
                    Button(action: { number2 += 1 }) { Text("increase") }
                }
                VStack {
                    Text("\(number3)")
                    Button(action: { number3 += 1 }) { Text("increase") }
                }
            }
            .navigationTitle("Counters")
        }
    }
}

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 2018-10-07
    • 2017-10-06
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多