您的位置:首页 > 其它

上拉刷新下拉加载——MJRefresh的学习使用

2015-09-10 11:21 459 查看
//先用代码创建一个TableView

    var tableView1:UITableView!

  override func viewDidLoad() {
        super.viewDidLoad()
        tableView1 = UITableView(frame: self.view.frame)
        self.view.addSubview(tableView1)
        tableView1.delegate = self
        tableView1.dataSource = self
//注册Cell
        tableView1.registerClass(UITableViewCell.classForCoder(), forCellReuseIdentifier: "cell")

//上拉刷新使用MJRefresh的Block

 func headRefresh(){
//ProgressHUD的使用    

        ProgressHUD.show("玩命刷新中")
//Delay方法是模拟刷新延迟自定义的方法

        self.Delay(2, closure: { () -> () in
            var j = self.i + 10
            for self.i; self.i<j; self.i++ {
                self.Array1.append("\(self.i)")
            }
            self.tableView1.reloadData()
            self.head.stopRefresh()
            ProgressHUD.showSuccess("OK")
        })
    }

//下拉加载使用MJRefresh的Block
self.tableView1.footer = MJRefreshBackGifFooter(refreshingBlock: { () -> Void in
  ProgressHUD.show("玩命刷新中")
            self.Delay(2, closure: { () -> () in
                var j = self.i + 10
                for self.i; self.i<j; self.i++ {
                self.Array1.append("\(self.i)")
                }
                self.tableView1.footer.endRefreshing()
                self.tableView1.reloadData()
                ProgressHUD.showSuccess("OK")
            })

        })
//Delay方法的定义

 func Delay(time:Double,closure:()->()){
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC))), dispatch_get_main_queue(), closure

//利用XHPathCover创建一个类似微信朋友圈的背景

var head:XHPathCover!

  head = XHPathCover(frame: CGRect(x: 0, y: 0, width: 320, height: 200))

        head.setBackgroundImage(UIImage(named: "bg"))

        head.setAvatarImage(UIImage(named: "gbt"))

        head.avatarButton.addTarget(self, action: "PhotoBrowser", forControlEvents: UIControlEvents.TouchUpInside)

//拖拽模糊效果     

        head.isZoomingEffect = true

        head.setInfo(NSDictionary(objectsAndKeys: "baibai",XHUserNameKey,"IOS程序员",XHBirthdayKey) as [NSObject:AnyObject])

    

        head.avatarButton.layer.cornerRadius = 33

        head.layer.masksToBounds = true

        head.handleRefreshEvent = {

        self.headRefresh()

        }

//因为要实现此背景的拖拽,需要实现ScrollView的几个方法。

 func  scrollViewDidScroll(scrollView: UIScrollView){

        head.scrollViewDidScroll(scrollView)

    }

    func scrollViewWillBeginDragging(scrollView: UIScrollView)

    {head.scrollViewWillBeginDragging(scrollView)

    }

    func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {

        head.scrollViewDidEndDragging(scrollView, willDecelerate: decelerate)

    }

    func scrollViewDidEndDecelerating(scrollView: UIScrollView) {

        head.scrollViewDidEndDecelerating(scrollView)

    }
//自定义TableView的Cell
//将每行的高度改为80

 func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

        return 80

    }

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

        var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell

         // ?

        for view in cell.contentView.subviews{

        view.removeFromS

 var image = UIImageView(frame: CGRect(x: 10, y: 10, width: 60, height: 60))

  //给每一行加上图片

        image.sd_setImageWithURL(NSURL(string: "http://ent.jwb.com.cn/picture/0/1111201750371192916.jpg" ))

        cell.contentView.addSubview(image)

        var label = UILabel(frame: CGRect(x: 80, y: 30, width: 100, height: 20))

        label.text = "这是第\(indexPath.row)行"

        cell.contentView.addSubview(label)

        return cell

    }

//运行效果



//刷新

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: