小编use*_*147的帖子

为什么即使在主线程上也需要使用 DispatchQueue.main.async 设置 UIImageView.image

试图在点击时在按钮上设置图像。验证 targetAction 处理程序总是在主线程上调用。

这不起作用

@objc func buttonTapped() {
     self.mybutton.imageView?.image = MyObjcClass.getImageNamed("DarkVersion")
}
Run Code Online (Sandbox Code Playgroud)

但这有效:

@objc func buttonTapped() {
    DispatchQueue.main.async { // Does not work without this dispatch
        self.mybutton.imageView?.image = MyObjcClass.getImageNamed("DarkVersion")
    }
}
Run Code Online (Sandbox Code Playgroud)

在调试器上,我可以看到两者都在主线程上

uikit ios swift

3
推荐指数
1
解决办法
118
查看次数

标签 统计

ios ×1

swift ×1

uikit ×1