iOS-Swift-MJRefresh

作者: 轩辕小羽 | 来源:发表于2015-12-31 14:01 被阅读11518次

前言

本篇文章较为基础,只是为了让新手尽快熟悉swift下的一些操作

最近用swift写项目的公司越来越多了,对于Swift的第三方库的需求也越来越多了,我用了半个小事整理出了Swift语言如何调用MJ的刷新并分享出来
主要看一下Swfit如何调用cocoaPods里的第三方库,和Swift初始化OC对象的方法

上代码

先导入CocoaPods

  • $ cd 文件路径
  • $ vim Podifle
  • 按I进入编辑模式
  • 文本里输入 pod 'MJRefresh'
  • 按ESC然后输入:wq
  • $ pod install
成功效果图

创建一个Header文件

Header.h

Header.h里面关联头文件

#ifndef Header_h
#define Header_h

#import "MJRefresh.h"

#endif /* Header_h */

在Build Settings里的Objective-C Bridging Header里加入Header.h的文件路径

BuildSettings里添加Header.h的路径
class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {
    
    @IBOutlet weak var tableview: UITableView!
    // 顶部刷新
    let header = MJRefreshNormalHeader()
    // 底部刷新
    let footer = MJRefreshAutoNormalFooter()
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // 下拉刷新
        header.setRefreshingTarget(self, refreshingAction: Selector("headerRefresh"))
        // 现在的版本要用mj_header
        self.tableview.mj_header = header
        
        // 上拉刷新
        footer.setRefreshingTarget(self, refreshingAction: Selector("footerRefresh"))
        self.tableview.mj_footer = footer
        
    }
    
    // 顶部刷新
    func headerRefresh(){
        print("下拉刷新")
        // 结束刷新
        self.tableview.mj_header.endRefreshing()
    }
    
    // 底部刷新
    var index = 0
    func footerRefresh(){
        print("上拉刷新")
        self.tableview.mj_footer.endRefreshing()
        // 2次后模拟没有更多数据
        index = index + 1
        if index > 2 {
            footer.endRefreshingWithNoMoreData()
        }
    }
    
    // 区数
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1;
    }
    
    // 行数
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 10;
    }
    
    // cell
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "a")
        cell.textLabel!.text = "测试刷新"
        return cell
    }
    
    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 150;
    }
}

效果图

Swift-Mjrefresh.gif

github下载demo需要更改buildSetting的路径

GitHub:https://github.com/Lafree317/Swift-MJrefresh/tree/master

相关文章

  • iOS-Swift-MJRefresh

    前言 本篇文章较为基础,只是为了让新手尽快熟悉swift下的一些操作 最近用swift写项目的公司越来越多了,对于...

  • iOS-Swift-MJRefresh重写

    Introduction 自定义方便, Demo里面有国内主流App的下拉效果的模仿 代码简洁,总代码量不超过10...

网友评论

  • Ko_Neko:请教一下 使用带动画的 刷新应该怎么写呢
  • 哭与行:不是 $ vim Podifle 而是 $ vim Podfile
  • NoteCode:我是xcode8.3,在使用的ViewController.swift 中,还需要下面语句,否则编译不过

    #import MJRefresh
  • 代码行者:4楼正解,不用head.h,另外head的路径最好不使用拖拽产生的,推荐使用$(PROJECT_DIR)+文件名:smile:
  • GTMYang:欢迎使用这个库:http://www.jianshu.com/p/a6c8ca8845f2
    用Swift实现的MJRefresh
  • 半路出家的coder:桥接头文件里加#import "MJRefresh/MJRefresh.h"
  • nsuxin: :smiley: 我来加一句,pod引用的不用header.h,直接在对应页面import就行了
    轩辕小羽:@nsuxin 噢!:flushed:
  • 渔夫简想:是认真的嘛? use framework 不就行了…… head不需要了吧?
    小喇叭花爸爸:@轩辕小羽 加上use framework,是不用header.h了。。
    8a05d758e213:@轩辕小羽 我也没用 以前pod装过其他oc写的框架 似乎什么都不需要做
    轩辕小羽:@伟征 :hushed:我去试试
  • 8a05d758e213:不错 正好用到 谢谢

本文标题:iOS-Swift-MJRefresh

本文链接:https://www.haomeiwen.com/subject/uqoihttx.html