状态与绑定 @State @Binding

108 阅读1分钟
  • 场景一个按钮有选中未选中状态,然后文本随着按钮状态更改文本
  • TitleView
import SwiftUI

struct TitleView: View {
    
    @Binding var isSelected:Bool
    
    var body: some View {
        Text(isSelected ? "选中" : "未选中")
            .font(.system(size: 20))
            .foregroundColor(isSelected ? .red : .gray)
    }
}

struct TitleView_Previews: PreviewProvider {
    static var previews: some View {
        TitleView(isSelected: .constant(true))
    }
}
  • 主页面
struct ContentView: View {
    
    @State var isSelected = false
    
    var body: some View {
        
        VStack {
            
            Button {
                debugPrint("操作")
                isSelected.toggle() // 切换状态
            } label: {
                Image(systemName: isSelected ? "checkmark.circle.fill" : "circle")
                    .font(.system(size: 100))
                    .foregroundColor(isSelected ? .green : .gray)
                
            }
            .padding()
            
            TitleView(isSelected: $isSelected)
        
        }

    }
}