博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MJRefresh的使用
阅读量:7124 次
发布时间:2019-06-28

本文共 1887 字,大约阅读时间需要 6 分钟。

1⃣写一个简单的tableview模版,显示数组里的数据

  

    var ObjectArray = [String]()

    var i = 0
    
    override func viewDidLoad() {
        super.viewDidLoad()
        for i = 0 ; i<10 ; i++ {
            self.ObjectArray.append("\(i)")
        }
    }

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

        return 1
    }
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return ObjectArray.count
    }
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
        cell.textLabel?.text = "这是第\(self.ObjectArray[indexPath.row])行"
        return cell
    }

2⃣添加MJRefresh,并创建桥接文件

  将MJRefresh拖到项目中:

  

  创建桥接文件:

  new file->source->Header file

  

  在项目-building settings中查找“bridging”设置添加的头文件的路径

  

  并在.h文件中引入第三方库

  #import "MJRefresh.h"

 

3⃣调用刷新方法

    override func viewDidLoad() {

        super.viewDidLoad()
        for i = 0 ; i<10 ; i++ {
            self.ObjectArray.append("\(i)")
        }
        
        self.tableView.addLegendHeaderWithRefreshingTarget(self,refreshingAction: "headRefresh")
        self.tableView.addGifFooterWithRefreshingTarget(self, refreshingAction: "footRefresh")
    }
    func headRefresh(){
        self.Delay(1, closure: { () -> () in
            self.ObjectArray.removeAll(keepCapacity: false)
            for self.i = 0 ; self.i < 10 ; self.i++ {
                self.ObjectArray.append("\(self.i)")
            }
                self.tableView.header.endRefreshing()
                self.tableView.reloadData()
            //self.head.stopRefresh()
            })
    }
    func footRefresh(){
            self.Delay(1, closure: { () -> () in
            let j = self.i + 10
            for self.i = 10 ; self.i < j ; self.i++ {
                self.ObjectArray.append("\(self.i)")
            }
                self.tableView.footer.endRefreshing()
                self.tableView.reloadData()
            })
    }
    //延迟函数,模拟服务器延迟
    func Delay(time:Double,closure:()->()){
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure)
    }

 

转载于:https://www.cnblogs.com/luoxiaoxi/p/5065588.html

你可能感兴趣的文章
AngularJS—— 指令的复用
查看>>
FreeCMS有些功能出现乱码怎么办?
查看>>
AngularJS模块化开发实例
查看>>
python--django database grammar
查看>>
PHP内核探索:Zend虚拟机
查看>>
用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
latex 表格列宽度固定的情况下让文字居中显示
查看>>
mysql数据库备份与恢复
查看>>
Linux下文件描述符
查看>>
单元测试系列之5:使用unitils测试Service层
查看>>
忘记了root密码不能进入系统 -红帽官方文档
查看>>
构建FTP服务器,基于SSL,基于虚拟用户
查看>>
iOS tableView类似电话薄右边的索引搜索
查看>>
metasploit 配置 on kali 2016.2
查看>>
shell正则提取字符串中的数字并保存到变量中
查看>>
我的友情链接
查看>>
编程实现sharepoint工作流中的发送邮件功能
查看>>
git命令简易使用
查看>>