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 列表项增加计数的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftUI 设置 TabBar 项徽章计数

SwiftUI - 取决于元素计数的可调整大小的列表高度

为啥单击 SwiftUI 中的列表项后列表视图项变为灰色?

SwiftUI - 未取消选择列表项

如何将字典项分别添加到 SwiftUI 列表中

滚动视图中的内容作为列表项在滚动(swiftui)时消失,为啥?