2011-03-02 9 views
0

嗨,如何更新UIView而不使用主線程

我有一個線程難題。我有一個UIView隨着時間的推移繪製了一個弧,這取決於我的代碼中發生某些事情的速度。它永遠不能停止繪畫,繪製的速度可能會改變。

當我開始這樣做時,我認爲我應該計算弧的百分比以便在單獨的線程中繪製。這可以。問題是,爲了重新繪製基於新百分比的弧,我需要在主線程上執行updateArc函數。

看到我的要求是它不斷更新主線程是永遠不會自由地做任何事情。如果我不使用主線程調用弧更新函數,則更新從不發生。

如何在不中斷主線程的情況下持續更新UIView?

回答

0

編輯:您可以使用顯示鏈接。

+0

這就是問題所在。我需要每秒更新一次弧線以獲得流暢的動畫。因爲我需要定期更新用戶界面,所以UI永久封鎖。 – dubbeat 2011-03-02 16:35:40

+0

你確定你不能在單獨的線程上完成這項工作嗎?因爲那將是最好的解決方案。然而,你也可以使用顯示鏈接,但是這不會在iOS <3.1上工作,他們可以改變它們的實現,使它不能在單獨的線程上工作。 – 2011-03-02 16:44:05

+0

什麼顯示鏈接? – dubbeat 2011-03-02 16:52:54

0

提高繪圖速度的一種方法是隻重繪在更新之間發生更改的部分弧線,並且只會使屏幕的該部分無法重繪。在setNeedsRedraw中,您可以指定哪些rect被標記爲重繪。

但是在RTS上說沒有辦法在後臺線程中繪製。