2012-01-06 36 views
0

我有一個應用程序,當我從數據庫和建築物中讀取一些信息時,我想要一個圖像動畫。我已經使用UIImageView並設置和圖像數組,但如果我開始動畫,然後做我的數據庫處理,動畫不會播放。如何在動畫過程中執行處理

是否有另一種方式來啓動動畫,或者我在動畫過程中做處理?

感謝

回答

3

這聽起來像你的主線程,因此您的動畫運行做你的處理。

動畫在主線程上運行,因此避免阻塞這個線程的處理應該在不同的線程進行調度。

你可以做到這一點使用塊像這樣:

dispatch_queue_t queue; 
queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 

dispatch_async(queue, ^{ 

    // Your processing to be performed on this thread. 
}); 

或者對早期的iOS版本,像這樣:

[self performSelectorInBackground:@selector(yourProcessing) withObject:nil]; 

- (void)yourProcessing { 

    // Your processing to be performed on this thread. 
} 

我強烈建議通過Threading Programming Guide的閱讀,其次是看WWDC會議討論區塊和大中央調度(WWDC 2009)。

+0

謝謝你,我正在翻閱它。 – LilMoke 2012-01-06 18:25:26

2

你可以在開始動畫後在後臺線程上運行您的數據庫處理。這將允許兩者同時發生。

+0

唉唉,是的,這就是我想的也是,不過,作爲新的XCode,目標C和iPad,我在尋找啓動一個線程的方式處理。在這方面的任何幫助,我會歡迎。例如,代碼片段等等。謝謝 – LilMoke 2012-01-06 18:14:54

+0

@LilMoke查看[這篇文章](http://stackoverflow.com/questions/4422561/calling-performselectorinbackground-from-background-thread)和[this post](http:// stackoverflow .com/questions/873200/memory-management-and-performselectorinbackground)舉例和討論。關鍵是管理autoreleasepool,但這些例子告訴你如何正確地做到這一點。 – PengOne 2012-01-06 18:20:51

+0

是的,現在經歷。 – LilMoke 2012-01-06 18:24:46

2

聽起來你正在試圖做的主線程,其中,是的,會阻塞你的UI,因此它不能動畫(因此用戶不能與任何交互)上的數據庫處理。看看Concurrency Programming Guide

相關問題