2013-03-06 98 views
2

我有一個UIRefreshControl,並且它在您使用它時正常工作,但它掛起,它永遠不會消失。我試過UIRefreshControl無限期掛起

[self.refreshControl endRefreshing]; 

該解決方案來自類似的question,但它沒有解決我的問題。

即使這樣,refreshControl繼續旋轉,而不是解散。爲什麼是這樣?

在我viewDidLoad中:

[NSThread detachNewThreadSelector:@selector(refreshFeed) toTarget:self withObject:nil]; 

refreshControl = [[UIRefreshControl alloc] init]; 

[refreshControl addTarget:self 
        action:@selector(refreshFeed) 
     forControlEvents:UIControlEventValueChanged]; 

[self.tableView addSubview:refreshControl]; 

refreshFeed方法...

-(void)refreshFeed 
//load those feeds 
{ 
RSSLoader* rss = [[RSSLoader alloc] init];  
[rss fetchRssWithURL:feedURL 
      complete:^(NSString *title, NSArray *results) { 
       dispatch_queue_t downloadQueue = dispatch_queue_create("downloader",NULL); 
       dispatch_async(downloadQueue, ^{ 

       _objects = results; 

       //completed fetching the RSS 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [self.refreshControl endRefreshing]; 
        [self.tableView reloadData]; 
       }); 
       }); 
       }]; 
} 
+0

做tableView reloadData的工作?如果沒有,讓它在主線程上運行 – mashdup 2013-03-06 17:03:34

+0

reloadData確實有效......如果我把這個方法放在其他任何地方,這些單元不會加載。 – Morkrom 2013-03-06 17:34:53

回答

3

可以嘗試更改此行

[self.tableView addSubview:refreshControl]; 

[self setRefreshControl:refreshControl]; 
+0

很高興我能幫忙:) – AC1 2013-03-06 23:21:56

相關問題