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
使用 RxSwift 刷新后绑定到 UIRefreshControl