2014-06-16 59 views
0
  • 當使用UIActivityIndicatorView時,可以將此視圖添加到您的視圖層次結構中並開始對其進行動畫處理。
  • 之後,你完全保存以阻止main thread(這不是一個好的方法),我基本上沒有任何知道的東西,可以阻止activity indicator旋轉。

我的問題是:如何構建UIActivityIndi​​catorView

  1. 這是如何完成的?好像UIActivityIndicatorView使用自己的線程進行渲染。
  2. 這是可以用我自己的觀點來實現的東西嗎?
  3. 我有一個CoreAnimation動畫,我想繼續播放,而主線程可能會阻塞幾毫秒。

如何做到這一點?感謝您的幫助或想法!

//編輯:澄清我的問題:我想知道蘋果如何阻止主線程獲得UIActivityIndicatorView動畫。當我觸發我自己的CoreAnimation並阻止主線程時,動畫本身停止。除了蘋果爲了實現這一目標所做的工作,我想知道,如果我能用公共API實現這一目標。

+0

您的問題不清楚 – sleepwalkerfx

回答

0

您最好的解決方案是使用後臺線程進行長時間處理,同時保持主線程僅用於顯示目的。這樣,您將能夠不受阻擋地顯示視圖,並同時運行長時間的處理。

您可以使用Grand Central Dispatch (GCD) dispatch_async在另一個線程上運行您的長處理代碼,然後在主線程上調用dispatch_async來刷新您的UI。

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), 
       ^{ 
        // Your long processing code 

        dispatch_async(dispatch_get_main_queue(), 
           ^{ 
            // Refresh UI here 
            }); 
       }); 
+0

我知道我可以做到這一點。然而,我的問題更多地是關於蘋果在做什麼這個活動指標。即使我們在後臺線程中執行繁重的工作,仍然有很多原因可能導致動畫過程中出現一些小動作。 –

相關問題