有人向我指出,有一种更好的方法来编写这段代码,而不是使用本地闭包。我该怎么做?单击时切换图像。
@IBAction func btnMuteMicPressed(_ sender: Any) {
publisher.publishAudio.toggle()
let buttonImage: UIImage = {
if !publisher.publishAudio {
return #imageLiteral(resourceName: "group3-1")
} else {
return #imageLiteral(resourceName: "group3")
}
}()
btnMuteMic.setImage(buttonImage, for: .normal)
}
最佳答案
这可以缩短为,
@IBAction func btnMuteMicPressed(_ sender: Any) {
publisher.publishAudio.toggle()
let buttonImage = !publisher.publishAudio ? #imageLiteral(resourceName: "group3-1") : #imageLiteral(resourceName: "group3")
btnMuteMic.setImage(buttonImage, for: .normal)
}
我认为这里不需要
closure
来获取buttonImage
。这绝对不意味着你的代码是错误的。关于swift - 使用本地闭包?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56807712/