在使用iOS应用的用户中,很大一部分用户极少会有双击home键关闭不用的进程的习惯。由此引出了一个问题,那就是当用户不使用时按home键将程序挂起。如果该应用使用了本地缓存机制,过了一段时间再打开应用时还是上一次的内容。关于这个问题,网易新闻的解决方案是当应用从后台运行转为前台时自动调用下拉刷新来更新数据。下面就谈谈这种功能的实现方法。
1、首先在相应的viewController的viewDidLoad方法里面添加一个通知,具体代码如下
- (void)viewDidLoad { [super viewDidLoad]; //响应程序从后台转为前台的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updatePictureNewsByActive) name:UIApplicationDidBecomeActiveNotification object:nil]; }
- (void)dealloc { [super dealloc]; [[NSNotificationCenter defaultCenter] removeObserver:self]; }
3、这样当应用从后台转为active时候就会调用updatePictureNewsByActive方法更新数据了,在updatePictureNewsByActive方法中通过手动调用下拉刷新的代码如下:
- (void)updatePictureNewsByActive { [self.tableView setContentOffset:CGPointMake(0, -75) animated:YES]; [self performSelector:@selector(doneManualRefresh) withObject:nil afterDelay:0.3]; } - (void)doneManualRefresh { [refreshTableHeaderView egoRefreshScrollViewDidScroll:self.tableView]; [refreshTableHeaderView egoRefreshScrollViewDidEndDragging:self.tableView]; }我这里使用的是EGOTableViewPullRefresh的开源类库实现的下拉刷新,关于它的使用方法在我的文章 iPhone开发笔记(17)使用EGOTableViewPullRefresh实现列表的下拉刷新功能中有详细的介绍。