我正在标签栏中执行一项操作,即(两次轻按按钮时)它应该执行
[root.FeedTableView setContentOffset:CGPointZero animated:YES];
但是我无法在其中执行
dispatch_async(dispatch_get_main_queue(), ^{
});
什么都没发生,所以我尝试使用
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
});
,并且在这种情况下会弹出线程运行时错误,效果很好。
检查以下代码并提出补救措施,以解决发生在
的线程问题[root.FeedTableView setContentOffset:CGPointZero动画:是];
(void)processBtn:(UIButton *)sender {
NSLog(@"sender:%li",(long)sender.tag);
if (self.selectedViewController==self.viewControllers[0] && sender.tag==1){
NewsFeedViewController * root = [newsFeedSceneController.viewControllers firstObject];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
[root.FeedTableView setContentOffset:CGPointZero animated:YES];
dispatch_async(dispatch_get_main_queue(), ^{
if(!root.isUpdatingTableView)
[root.refreshControl endRefreshing];
});
});
}
答案 0 :(得分:0)
如乔恩·罗斯(Jon Rose)所述,滚动查看线:
castShadow=false
和UIrefreshcontrol行:
[root.FeedTableView setContentOffset:CGPointZero animated:YES];
是主要冲突。
所有需要做的就是删除UIrefreshcontrol行并添加不依赖UI的行[root.refreshControl endRefreshing];