我正致力于改善向用户显示的图像的性能。我已经删除了alpha混合,并且已经为UIImageView分配了一个缩放/正确大小的图像以及一些缓存。但是,作为其中的一部分,我正在考虑将setHiglightedImage:
调用移动到后台线程。
ImageView包含在UIKit中,它表示对布局的任何修改都应该在主线程上完成。但是,在使用highlightImage分配图像时,我们不会触发任何布局更改或调用任何约束。这是否是一个不违反UIKit规则的有效变更?是否会因此而抛出任何异常?
到目前为止,在后台线程上运行此调试器时,我看不到任何问题或警告。此外,关于UIImageView的苹果官方文档(here和here)并未在后台线程中指定此内容。我尝试在网上搜索更多关于这样做的信息,但是找不到任何有用的信息
[UIImageView setHighlightedImage:]
是否有理由不在后台线程?它是否有任何性能优势?
答案 0 :(得分:1)
setHighlightedImage 正在更改用户界面。你不能在后台线程上运行它。
在Cocoa应用程序中,主线程运行用户界面,即 是的,所有绘图和所有事件都在主线程上处理。如果你的 应用程序对其执行任何冗长的同步操作 线程,您的用户界面可能会变得无响应并触发 旋转光标。为避免这种情况,您应该缩短时间 这些操作消耗,推迟执行或移动它们 次要线程。