2012-12-27 24 views
0

可能重複:
Safe way to render UIVIew to an image on background thread?如何確定哪些進程應該在主線程上運行? iOS的

我想實現一些HUD代碼。 HUD是一個活動指標,當然在長時間的操作中給用戶一些反饋。據我瞭解,HUD必須在主線程上運行,因爲它是一個UI操作,但我也明白,如果其他操作是UI操作,他們也需要在主線程上運行。我假設運行CoreImage過濾器(例如)將是一個可能會從主線程運行的示例,但將生成的UIImages圖像添加到UIImageView將需要在主線程上運行。 我正確嗎?[[aView layer] renderInContext:UIGraphicsGetCurrentContext()]怎麼樣?這可以從主線程運行嗎?

我怎樣才能確定哪些操作需要在主線程上運行?

感謝您的閱讀。

回答

1

[[aView layer] renderInContext:UIGraphicsGetCurrentContext()]怎麼樣?這可以運行在主線程 ?

什麼是視圖?它是界面的一部分。什麼是圖層?它是界面的一部分。除主線程外,請勿觸摸該接口。

+0

在這種情況下,如果renderInContext需要很長時間才能完成,那麼我將如何添加一個有效的HUD來保持界面的響應? – Mrwolfy

+0

我不明白這個問題。 (1)如果有HUD,爲什麼界面需要響應? HUD的含義是不是「請等着,什麼都不要做?」 (2)內置的活動指示器爲您旋轉。 (3)你是否瞭解如何在主線上下車?你可以在背景中做任何你喜歡的事情。只需回到您觸摸界面的那些時刻的主線程即可。 – matt

+0

是的我明白如何在主線上下車。問題是,據我所知,建議HUD作爲一個視圖,需要在主線上。所以,如果主進程中還有一個長進程,根據我的經驗,活動指示符不會在主線程的長進程處於活動狀態時旋轉。謝謝閱讀! – Mrwolfy

相關問題