UIRefreshControl 无限期挂起
Posted
技术标签:
【中文标题】UIRefreshControl 无限期挂起【英文标题】:UIRefreshControl hangs indefinitely 【发布时间】:2013-03-06 15:27:26 【问题描述】:我有一个 UIRefreshControl,当你使用它时它工作正常,但它挂起,它永远不会消失。我试过了
[self.refreshControl endRefreshing];
这个解决方案来自类似的question,但它没有解决我的问题。
即使这样,refreshControl 也会继续旋转,而不是关闭。为什么是这样?
在我看来DidLoad:
[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];
);
);
];
【问题讨论】:
tableView reloadData 工作吗?如果没有,让它在主线程上运行 reloadData 确实有效...如果我将该方法放在其他任何地方,则单元格不会加载。 【参考方案1】:你能不能换行试试
[self.tableView addSubview:refreshControl];
与
[self setRefreshControl:refreshControl];
【讨论】:
以上是关于UIRefreshControl 无限期挂起的主要内容,如果未能解决你的问题,请参考以下文章