【发布时间】:2016-12-28 11:08:52
【问题描述】:
我为我的控制器实现了pull to refresh 功能:
- viewDidLoad {
self.refresh = [[UIRefreshControl alloc] init];
[self.refresh addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:self.refresh];
}
- (void) refreshData {
__weak myController *weakSelf = self;
[[NetworkcallManager instance] getCall:^(NSString *result){
if(weakSelf != nil) {
[weakSelf.refresh endRefreshing];
[weakSelf.tableView reloadData];
}
}];
}
刷新按预期工作,但是当我用力拉下屏幕时,整个屏幕会消失一会儿,然后数据会被刷新。
有没有办法避免屏幕消失?我想知道是不是因为 reloadData 功能。如果它调用'viewWillAppear',那么我可以理解我面临的问题。 (我的 viewWillAppear 代码会导致屏幕暂时空白)。
编辑: 如果我在没有互联网连接的情况下下拉(关闭 wifi),那么屏幕不会消失。
【问题讨论】:
-
您是否收到任何 AutoLayout 错误?
-
不,我不知道。在黑屏的情况下一切正常。
-
尝试在主线程中重新加载您的 tableView -
dispatch_async(dispatch_get_main_queue(), ^{ [weakSelf.refresh endRefreshing]; [weakSelf.tableView reloadData]; }); -
也试过了。但是屏幕仍然消失了。
-
我遇到了问题。在代码中,我正在清除表,然后对其进行更新。结果,屏幕瞬间消失。
标签: ios objective-c pull-to-refresh