我試圖在從我的應用程序中解析互聯網數據時將旋轉活動指示器(UIActivityIndicatorView)添加到我的應用程序中。我有一個IBOutlet(微調)連接到IB的UIActivityIndicatorView。最初,我把它設置爲這樣:活動指示器不旋轉
-
(void) function {
self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite];
self.spinner.hidesWhenStopped = YES;
[spinner startAnimating];
//parse data from internet
[spinner stopAnimating];}
但微調不會旋轉。我讀到它與同一線程中的所有內容有關。所以我試過這個:
- (void) newFunction {
self.spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite];
self.spinner.hidesWhenStopped = YES;
[spinner startAnimating];
[NSThread detachNewThreadSelector: @selector(function) toTarget: self withObject: nil];
[spinner stopAnimating];}
但是還是沒有運氣。有任何想法嗎?謝謝。
+1爲正確答案,附錄中說明他沒有看到任何內容的原因是因爲他在主線程啓動後立即停止動畫。他必須執行「performSelectorOnMainThread:withObject:waitUntilDone:」的原因是因爲所有UI相關的活動都發生在主線程上,但是微調器的啓動/停止必須發生在另一個線程內。 – jer 2010-12-19 04:05:52