声明:以下内容全属于个人心得,如发现有不正确的地方,欢迎指正。
在一个viewController里面使用EGORefreshTableHeaderView
装在EGORefreshTableHeaderView的步骤省略..设置其实例名称为_refreshHeaderView
首先,在这个viewController进行向下拖拽的时候,触发UIScrollView的委托方法:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
在这个方法里实现 [_refreshHeaderView egoRefreshScrollViewDidScroll:scrollView];
}
_refreshHeaderView在执行这个方法的时候,会触发这个delegate: egoRefreshTableDataSourceIsLoading
在当前viewController里实现该委托方法
- (BOOL)egoRefreshTableDataSourceIsLoading:(UIView*)view{
return _reloading; // should return if data source model is reloading
}
此时的_reloading还是当前初始化的值 NO;那么_refreshHeaderView还未进行加载不显示菊花圈
当viewController对视图松开向下拖拽的时候,触发UIScrollView的委托方法:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
//实现 [_refreshHeaderView egoRefreshScrollViewDidEndDragging:scrollView];
}
refreshHeaderView在实现egoRefreshScrollViewDidEndDragging方法的时候 会触发这个delegate :egoRefreshTableDidTriggerRefresh
在当前viewController里实现这个委托
- (void)egoRefreshTableDidTriggerRefresh:(EGORefreshPos)aRefreshPos
{
设置_reloading=YES; 开始加载菊花圈
并完善加载数据的方法
}
在加载完成的时候 执行 _reloading = NO;
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:self.view];
消除菊花圈 _refreshHeaderView弹回 完成一次加载