2017-02-03 36 views
1

我正在努力改善显示给用户的图像的性能。我已经删除了alpha混合,并且已经将一个缩放/正确尺寸的图像分配给UIImageView,并且已经有一些缓存。然而,作为这个的一部分,我正在考虑将setHiglightedImage:调用到后台线程。UIImageView setHighlightedImage:它是否必须在主线程上?

ImageView包装在UIKit中,它说任何对布局的修改都应该在主线程上完成。然而,在使用HighlightImage分配图像时,我们不会触发任何布局更改或调用任何约束。这是否会违反UIKit规则的有效更改?会因为这个而抛出任何异常吗?

我看不到任何问题或警告由调试器,而在背景线程上运行此目前为止。此外,UIImageView周围的苹果官方文档(herehere)并没有在后台线程上指定任何有关此问题的内容。我试图寻找更多的网上关于这样做,但真的不能找到什么有用的

是否有任何理由[UIImageView setHighlightedImage:]对不能在后台线程?它会有什么性能好处吗?

回答

1

setHighlightedImage正在改变用户界面。你不能在后台线程上运行它。

在Cocoa应用程序,主线程运行用户界面,即 ,所有图纸和所有事件都在主线程中处理。如果您的 应用程序在该线程上执行了任何冗长的同步操作,则您的用户界面可能无响应并触发旋转光标。为了避免这种情况,您应该缩短这些操作消耗的时间量,推迟执行或将它们移动到 辅助线程。

Apple Documentation

相关问题