Swift
struct ContentView: View {
@State private var myImage: UIImage?
var body: some View {
VStack {
if let image = myImage {
Image(uiImage: image)
.resizable()
.aspectRatio(contentMode: .fit)
} else {
Text("Image not initialized")
}
Button("Change Image") {
// 修改myImage的值
myImage = UIImage(named: "newImage")
}
}
.onChange(of: myImage) { newImage in
// 当myImage发生变化时执行的操作
print("myImage has changed to \(newImage)")
}
}
}
实际上,不需要加.onChange也可以的,
因为@State标记一个属性时,SwitfUI会自动监听这个属性的变更,当这个属性发生改变,SwiftUI 会自动重新计算&绘制视图。