iOS 系统自带的UIRefreshControl下拉刷新的用法

UIRefreshControl是tableViewController自带的.

在storyBoard中选中控制器,右边把Refreshing改成Enabled

//设置refreshControl的显示内容

    self.refreshControl.tintColor = [UIColor blueColor];//小菊花的颜色

    self.refreshControl.attributedTitle = [[NSAttributedString alloc]initWithString:@"正在拼命加载..."attributes:@{NSForegroundColorAttributeName:[UIColorredColor]}];//设置标题文字和颜色

    

    [self.refreshControl beginRefreshing];//开始刷新,

    [self.refreshControl endRefreshing];//结束刷新


=========================================

   // UITableView *tab=[[UITableViewalloc]initWithFrame:self.view.framestyle:UITableViewStylePlain];


//    UIRefreshControl *r=[[UIRefreshControl alloc]init];

//    tab.refreshControl=r;//系统自带的刷新控件



[使用方法]

1.目前只对UITableviewController有用;
2.只能下拉刷新,不能上拉刷新;
3.init或者viewdidload中创建 UIRefreshControl,设置文字,颜色等信息;
4.系统自动管理 UIRefreshControl,自动添加到tableview视图中;
5.给 UIRefreshControl添加方法,当值改变的时候调用,方法用于数据请求;
6.该方法中请求数据确认完成之后,调用 endRefreshing方法,关闭刷新;


   自己创建UIRefreshControl

 self.refreshControl = [[UIRefreshControlalloc]init];

    [self.tbaddSubview:self.refreshControl];//可以不加这句话,系统自动管理UIRefreshControl,自动添加到tableview视图中;

    [selfsetRefreshControl:self.refreshControl];//tableviewcontroller控制器设置刷新控件 ,可以不设置



    self.refreshControl.attributedTitle = [[NSAttributedStringalloc]initWithString:@"努力加载中……"];

    self.refreshControl.tintColor = [UIColorgrayColor];

    [self.refreshControladdTarget:selfaction:@selector(refreshAction)forControlEvents:UIControlEventValueChanged];



- (void)refreshAction{


   }




===============================

自定义上拉刷新和下拉刷新的原理:当tablebIew滚动到一个临界值时,执行响应的刷新数据的方法,改变状态文字和图标;


在swift中实现上啦静默加载

    //小菊花

    private lazyvar indicatorView:UIActivityIndicatorView = UIActivityIndicatorView(activityIndicatorStyle:UIActivityIndicatorViewStyle.Gray)

    

    //刷新提示的文案

    private lazyvar tipLabel:UILabel = {

        let l = UILabel(frame:CGRect(x:0, y:-64, width:KWidth, height:40))

        l.textColor = UIColor.whiteColor()

        l.font = UIFont.systemFontOfSize(17)

        l.textAlignment = .Center

        l.backgroundColor =themeColor

        return l

    }()



 override func tableView(tableView:UITableView, numberOfRowsInSection section:Int) -> Int {

        returnself.listViewModel.statuses.count

    }

    

    override func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell {

        //手写代码必须手动注册cell

        let cell = tableView.dequeueReusableCellWithIdentifier(HomeCellId, forIndexPath: indexPath)as!StatusCell

        //显示文案

//        cell.textLabel?.text = self.statuses[indexPath.row].user?.name

        cell.status = self.listViewModel.statuses[indexPath.row]

        //将要加载最后一个cell的时候并且小菊花没有转动的情况下

        if indexPath.row ==self.listViewModel.statuses.count -2 && !indicatorView.isAnimating(){

            //1.转动小菊花

            indicatorView.startAnimating()

            //开始加载数据加载更多数据

            loadData()

            print("开始静默加载数据")

        }

        return cell

    }



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值