我在表格视图中使用UIRefreshControl
。我已在viewDidLoad
中启动了刷新控制:
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
[self.bestDealsTableView addSubview:self.refreshControl];
我有一个滚动的目标方法:
-(void) handleRefresh:(UIRefreshControl *) refreshControl{
[self performSelector:@selector(updateDealsList) withObject:nil withObject:nil];
}
updateDealsList
方法:
- (void) updateDealsList {
self.dealsService = [[BestDealsService alloc] initServiceWithDelegate:self isLocalCall:NO];
[self.dealsService fetchBestDeals];
}
在我的服务响应方法中:
[self.refreshControl endRefreshing];
self.isTableViewInRefreshMode = YES;
[self.bestDealsTableView reloadData];
现在,我有两个问题: 1.我的刷新控件并未隐藏在我的服务成功响应中。 2.如果我向下拉表格视图,我可以看到刷新控件,但如果我再次向下滚动,我会在前一个下面看到一个新的。
第一次刷新控制的图片:
此处,再次向下滚动:
注意:我使用的是自定义TableViewCell
答案 0 :(得分:4)
这就是我修复它的方法:
// Pull To Refresh Code
if(self.refreshControl == nil){
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
}
[self.myTableView addSubview:self.refreshControl];
答案 1 :(得分:3)
使用以下内容初始化您的UIRefreshControl
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[self.bestDealsTableView addSubview:self.refreshControl];
并务必致电[self.refreshControl endRefreshing];
答案 2 :(得分:-2)
tableView.contentOffset = CGPointMake(0, -100);