2012-12-27 94 views
1

我已經開發了帶有UIRefreshControl的RSS源以刷新內容。但是每當我觸發UIRefreshControl時,它就會非常滯後。如果我使用Wifi,沒有任何延遲,但如果我的數據連接速度很慢,則會有很多延遲。UIRefreshControl滯後

有沒有人知道爲什麼會發生這種情況?

+0

在你的UI代碼中間決不做同步聯網。 – 2012-12-27 09:18:24

+0

@ H2CO3我該怎麼做呢?我的refreshControl只是調用刷新tableview的動作 – AmiiQo

+0

將所有網絡置於後臺。異步加載數據,加載時刷新表視圖。 – 2012-12-27 09:21:42

回答

1

您正在主線程中下載並解析數據。這就是它懸掛的原因。永遠不要在主線程上做耗時的任務,它會阻止你的用戶界面。

更改:

-(void) refreshInvoked:(id)sender forState:(UIControlState)state 
{ 
    [self reloadFeed]; 
} 

,如:

-(void) refreshInvoked:(id)sender forState:(UIControlState)state 
{ 
    dispatch_async(dispatch_queue_create("midhun", NULL), ^{ 
     [self reloadFeed]; 
    }); 
} 
+0

仍然有問題? –

+0

非常感謝!我從來沒有和其他線程一起工作過,這真是太棒了:D – AmiiQo

+0

@AmiiQo:很高興:)感謝您的評論 –