SwiftUI状态绑定:@State

code:

//
//  ContentView.swift
//  StateDemo
//
//  Created by udc on 2020/10/16.
//  Copyright © 2020 udc. All rights reserved.
//

import SwiftUI

struct ContentView: View {
    
    //加了@State注解的变量,视图通过监视和读取该变量来重新渲染UI。
    //其状态是由SwiftUI来存储管理的,作为视图渲染的单一可信来源。
    @State private var changgeState:Bool = false
    @State private var num:Int = 0;
    
    var body: some View {
        //垂直布局
        VStack(alignment: .center, spacing: 5, content:{
            Button(action: {
                //引用@State的变量时需要加上self的前缀才能正常找到变量
                self.changgeState.toggle()
            }){
                Text("点我改变计数显示位置背景")
            }
            //添加一个$前缀,就可以将State转为Binding。
            Stepper("计数器", value:$num).padding(50)
            //Z轴布局
            ZStack(content: {
                Text("显示数值").blur(radius: self.changgeState ?  10 : 0)
                Text("\(self.num)")
            })
            
        })
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

 

参考自:

https://www.jianshu.com/p/46cbe061c8f5

posted @ 2020-10-16 13:14  liuw_flexi  阅读(505)  评论(0编辑  收藏  举报