MJRefresh_LY 1.1.0

MJRefresh_LY 1.1.0

ButtFly 维护。



  • ButtFly

MJRefresh_LY

CI Status Version License Platform

示例

要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install

class ViewController: UIViewController {
    
    /// 协议的 contentTable
    let contentTable = UITableView()
    
    /// 协议的 datas
    var datas: [URL?]? = nil
    
    /// 协议的 pageSize
    var pageSize: Int = 10

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        view.addSubview(contentTable)
        contentTable.snp.makeConstraints { (make) in
            make.top.equalTo(view.safeAreaLayoutGuide.snp.top)
            make.bottom.equalTo(view.safeAreaLayoutGuide.snp.bottom)
            make.left.right.equalToSuperview()
        }
        contentTable.delegate = self
        contentTable.dataSource = self
        contentTable.register(UITableViewCell.self, forCellReuseIdentifier: "UITableViewCell")
        
        MJRefreshLY.addRefreshHeaderFor(aObj: self)
        MJRefreshLY.addRefreshFooterFor(aObj: self)
    }
    
    func getSouceUrlWithPage(_ page: Int, pageSize: Int) -> [URL?] {
        
        let arr = ["url", ...]
        let count = arr.count
        
        var res = [URL?]()
        
        let start = page * pageSize
        for i in 0..<pageSize {
            let idx = (start + i) % count
            res.append(URL(string: arr[idx]))
        }
        return res
        
    }


}


/// 遵循协议,协议的属性在上面已经给出
extension ViewController: MJRefreshLYProtocol {
    
    /// 协议的加载方法,去请求指定页面大小的第几页数据
    func lyLoadDatasWithPage(_ page: Int, pageSize: Int, complete: @escaping ([URL?]?, Int?) -> Void) {
        complete(getSouceUrlWithPage(page, pageSize: pageSize), nil)
    }
    
    typealias T = URL?
    
    
}


extension ViewController: UITableViewDataSource, UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return datas?.count ?? 0
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "UITableViewCell", for: indexPath)
        guard let datas = datas else {
            return cell
        }
        cell.textLabel?.text = datas[indexPath.row]?.absoluteString
        return cell
    }
    
    
}

安装

MJRefresh_LY 可以通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中

pod 'MJRefresh_LY'

作者

ButtFly, [email protected]

许可

MJRefresh_LY 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。