【问题标题】:UIRefreshControl is not hiding after refresh. iOSUIRefreshControl 刷新后不隐藏。 iOS
【发布时间】:2014-05-19 05:23:02
【问题描述】:

我在表格视图中使用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

【问题讨论】:

  • 您能否在致电performSelector 之前尝试将[self.refreshControl endRefreshing]; 放入-(void) handleRefresh:(UIRefreshControl *) refreshControl{。只是看看能不能解决它。
  • 无效。刷新控件仍然存在

标签: ios uitableview uirefreshcontrol


【解决方案1】:

这就是我修复它的方法:

// 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];

【讨论】:

    【解决方案2】:

    初始化你的UIRefreshControl

    self.refreshControl = [[UIRefreshControl alloc] init];
    [self.refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
    [self.bestDealsTableView addSubview:self.refreshControl];
    

    请务必致电[self.refreshControl endRefreshing];

    【讨论】:

      【解决方案3】:
      tableView.contentOffset = CGPointMake(0, -100);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-15
        • 2013-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-18
        • 2014-03-30
        相关资源
        最近更新 更多