2011-05-19 67 views
0

我想在完成一個線程/另一個函數的類後,從另一個視圖中刪除一個視圖。目前我使用下面的代碼設定的時間段之後將其刪除,但很明顯,該函數完成時間變化線程/函數完成後調用函數

LoadingView *loadingView = 
    [LoadingView loadingViewInView:self.view]; 

    [loadingView 
    performSelector:@selector(removeView) 
    withObject:nil 
    afterDelay:10.0]; 

是否有這樣做的一個簡單的方法?我在網上查找,似乎無法找到任何東西。這是否意味着我必須自己編寫此功能?

+0

當你想刪除它時,爲什麼不能直接調用[loadingView removeView]?當然,牢記UIKit線程安全和所有... – 2011-05-19 01:43:29

回答

1

您可以從其他線程與刪除視圖:

[loadingView performSelectorOnMainThread:@selector(removeView) withObject:nil waitUntilDone:NO]; 

當然你只需要在一些地方,線程可以訪問維持到loadingView參考。

+0

非常感謝,這很好。輕微的問題雖然不是主要的,但是在加載視圖消失和正在顯示的數據之間存在一些(但顯而易見的)延遲。我正在加載的是來自線程中URL的圖像,任何想法如何防止? – 2011-05-19 02:37:12

+0

在performSelectorOnMainThread調用中將waitUntilDone設置爲no。 – TheBlack 2011-05-19 02:53:54

+0

好的電話,TheBlack。更新以反映這種情況。 – 2011-05-19 03:25:38