SwiftUI 列表项增加计数

Posted

技术标签:

【中文标题】SwiftUI 列表项增加计数【英文标题】:SwiftUI List Item Increase Count 【发布时间】: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变量 声明不能在正文中,必须在外面 【参考方案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")
        
    

【讨论】:

以上是关于SwiftUI 列表项增加计数的主要内容,如果未能解决你的问题,请参考以下文章