CRRefresh 1.1.3

CRRefresh 1.1.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2018年11月
SPM支持 SPM

WCL维护。



CRRefresh 1.1.3

  • 作者
  • W_C__L

版本 许可证 平台 支持  语言

CRRefresh 以简单的方式实现下拉刷新,如果您想自定义其 UI 样式,只需遵循特定的协议即可。我们不会定期更新一些漂亮的多媒体效果,同时欢迎您给我写信~

中文介绍 / 博客介绍

截图

NormalAnimator SlackLoadingAnimator RamotionAnimator
FastAnimator

要求

  • Xcode 8 或更高版本
  • iOS 8.0 或更高版本
  • ARC
  • Swift 3.0 或更高版本

特性

  • 支持 UIScrollView 及其子类 UICollectionView UITableView UITextView
  • 下拉刷新,上拉加载更多
  • 支持自定义样式

安装

CocoaPods

CocoaPods 是添加 CRRefresh 到您项目的推荐方式。

在您的 Podfile 中添加对 CRRefresh 的 pod 条目。

pod 'CRRefresh'

其次,将 CRRefresh 安装到您的项目中

pod install

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖并提供二进制框架。要使用 Carthage 将 CRRefresh 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "CRAnimation/CRRefresh"

运行 carthage update 以构建框架,并将构建的 CRRefresh.framework(在 Carthage/Build/iOS 文件夹中)拖到您的 Xcode 项目中(在 Targets 中的链接框架和库)。

手动

  1. 下载最新代码版本 .
  2. 在 Xcode 中打开您的项目,将 CRRefresh 文件夹拖到您的项目中。如果将代码存档提取到项目之外,确保选择复制项目。
  3. 您需要用 import CRRefresh

使用方法

CRRefresh添加到您的项目中

import CRRefresh

添加下拉刷新

/// animator: your customize animator, default is NormalHeaderAnimator
tableView.cr.addHeadRefresh(animator: NormalHeaderAnimator()) { [weak self] in
    /// start refresh
    /// Do anything you want...
    DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
        /// Stop refresh when your job finished, it will reset refresh footer if completion is true
        self?.tableView.cr.endHeaderRefresh()
    })
}
/// manual refresh
tableView.cr.beginHeaderRefresh()

添加无限滚动

/// animator: your customize animator, default is NormalFootAnimator
tableView.cr.addFootRefresh(animator: NormalFootAnimator()) { [weak self] in
    /// start refresh
    /// Do anything you want...
    DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
        /// If common end
        self?.tableView.cr.endLoadingMore()
        /// If no more data
        self?.tableView.cr.noticeNoMoreData()
		/// Reset no more data
		self?.tableView.cr.resetNoMore()
    })
}

自定义样式

自定义刷新需符合CRRefreshProtocol协议。

public protocol CRRefreshProtocol {
    /// Customize view
    var view: UIView {get}
    
    /// View insets
    var insets: UIEdgeInsets {set get}
    
    /// The height of the trigger to refresh
    var trigger: CGFloat {set get}
    
    /// The height of the animation is executed
    var execute: CGFloat {set get}
    
    /// Start refresh
    mutating func refreshBegin(view: CRRefreshComponent)
    
    /// End refresh
    mutating func refreshEnd(view: CRRefreshComponent, finish: Bool)
    
    /// Refresh the progress changes
    mutating func refresh(view: CRRefreshComponent, progressDidChange progress: CGFloat)
    
    /// Refresh the state changes
    mutating func refresh(view: CRRefreshComponent, stateDidChange state: CRRefreshState)
}

移除

tableView.cr.removeFooter()
tableView.cr.removeHeader()

贡献

欢迎通过克隆仓库、修改代码和提交issue或pull request等方式为项目做出贡献。

联系方式

如果您想要联系我

许可证

CRRefresh遵循MIT许可证发布。详细信息请参阅LICENSE文件。