刷新后UIRefreshControl没有隐藏。 iOS版

时间:2014-05-19 05:23:03

标签: ios uitableview uirefreshcontrol

我在表格视图中使用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.如果我向下拉表格视图,我可以看到刷新控件,但如果我再次向下滚动,我会在前一个下面看到一个新的。

第一次刷新控制的图片:

enter image description here

此处,再次向下滚动:

enter image description here 注意:我使用的是自定义TableViewCell

3 个答案:

答案 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);