SVPullToRefresh的用法

来源:互联网 发布:网络强国与青年运动 编辑:程序博客网 时间:2024/05/20 01:44

1.导入下载的第三方库

2.导入头文件

在需要的类里导入这一个头文件就能,同时使用下拉刷新,上拉加载

#import "SVPullToRefresh.h"

3.下拉刷新

[_tableView addPullToRefreshWithActionHandler:^{         //数据的加载,和表的刷新的代码。         //全部需要我们自己写 //        [self refreshTableView];         //3秒后调用refreshTableView方法         [self performSelector:@selector(refreshTableView) withObject:nil afterDelay:1.0]; //        //风火轮的动画还需要我们手动的停止 //        [_tableView.pullToRefreshView stopAnimating];     }];
4.上拉加载

[_tableView addInfiniteScrollingWithActionHandler:^{         [self performSelector:@selector(insertDate) withObject:nil afterDelay:3.0];     }];
5.自定义显示的文字

    [_tableView.pullToRefreshView setTitle:@"下拉以刷新" forState:SVPullToRefreshStateTriggered];     [_tableView.pullToRefreshView setTitle:@"刷新完了呀" forState:SVPullToRefreshStateStopped];     [_tableView.pullToRefreshView setTitle:@"不要命的加载中..." forState:SVPullToRefreshStateLoading];

6.自定义刷新时的动画

    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];     view.backgroundColor = [UIColor blueColor];     [UIView beginAnimations:nil context:nil];     [UIView setAnimationDuration:3];     view.alpha = 0.5 ;     [UIView commitAnimations];     [_tableView.pullToRefreshView setCustomView:view forState:SVPullToRefreshStateAll];

当然可以把view换成imageView等控件实现动画效果
7.实现刷新和加载的两个方法

- (void)refreshTableView { } - (void)insertDate { }

三.注意事项

iOS7和我们的下拉刷新库有冲突,因为都是对contentOffset进行操作,解决冲突,有两种做法

方法1:禁用navgationbar的半透明效果,还原至iOS6中的效果

    

self.navigationController.navigationBar.translucent = NO;

方法2:禁止系统自己修改contentOffset,然后修改tableViewframe

automaticallyAdjustsScrollViewInsets 这个属性,只有iOS7以后才能用,所以如果要兼容iOS6,在iOS6运行,我们需要判断一下能不能使用这个属性或者当前的系统版本

最终代码为: 

    if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) 
    {         self.automaticallyAdjustsScrollViewInsets = NO;                  _tableView.frame = CGRectMake(0, 64, 320, self.view.bounds.size.height - 64);     }; 

四.另外两个不错的下拉刷新的第三方

这两个集成和使用也都比较方便,你可以按需选择

1.MJRefresh   http://code4app.com/ios/快速集成下拉上拉刷新/52326ce26803fabc46000000

2.JHRefresh  https://github.com/Jiahai/JHRefresh


0 0
原创粉丝点击