2017-02-03 126 views
1

我正在努力改善顯示給用戶的圖像的性能。我已經刪除了alpha混合,並且已經將一個縮放/正確尺寸的圖像分配給UIImageView,並且已經有一些緩存。然而,作爲這個的一部分,我正在考慮將setHiglightedImage:調用到後臺線程。UIImageView setHighlightedImage:它是否必須在主線程上?

ImageView包裝在UIKit中,它說任何對佈局的修改都應該在主線程上完成。然而,在使用HighlightImage分配圖像時,我們不會觸發任何佈局更改或調用任何約束。這是否會違反UIKit規則的有效更改?會因爲這個而拋出任何異常嗎?

我看不到任何問題或警告由調試器,而在背景線程上運行此目前爲止。此外,UIImageView周圍的蘋果官方文檔(herehere)並沒有在後臺線程上指定任何有關此問題的內容。我試圖尋找更多的網上關於這樣做,但真的不能找到什麼有用的

是否有任何理由[UIImageView setHighlightedImage:]對不能在後臺線程?它會有什麼性能好處嗎?

回答

1

setHighlightedImage正在改變用戶界面。你不能在後臺線程上運行它。

在Cocoa應用程序,主線程運行用戶界面,即 ,所有圖紙和所有事件都在主線程中處理。如果您的 應用程序在該線程上執行了任何冗長的同步操作,則您的用戶界面可能無響應並觸發旋轉光標。爲了避免這種情況,您應該縮短這些操作消耗的時間量,推遲執行或將它們移動到 輔助線程。

Apple Documentation

相關問題