UIRefreshControl 刷新后不隐藏。 iOS

Posted

技术标签:

【中文标题】UIRefreshControl 刷新后不隐藏。 iOS【英文标题】:UIRefreshControl is not hiding after refresh. 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。只是看看能不能解决它。 无效。刷新控件仍然存在 【参考方案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);

【讨论】:

以上是关于UIRefreshControl 刷新后不隐藏。 iOS的主要内容,如果未能解决你的问题,请参考以下文章

UIRefreshControl:刷新时 UITableView '卡住'

使用 UIRefreshControl 刷新 UITableView

用于“上拉”刷新的 UIRefreshControl?

使用 RxSwift 刷新后绑定到 UIRefreshControl

使用 UIRefreshControl 刷新 TableView 内容

根据当前 URL 使用 UIRefreshControl 刷新