SwiftRefresher 0.9.3

SwiftRefresher 0.9.3

测试已测试
语言语言 SwiftSwift
许可协议 MIT
发布日期最后发布2017年3月
SwiftSwift 版本3.0
SPM支持 SPM

Morita Naoki维护。




  • Morita Naoki

SwiftRefresher

SwiftRefresher解决了在UIViewController中UITableView上的UIRefreshControl存在的问题!SwiftRefresher是UIRefreshControl的一种替代方案。此外,它非常易于自定义!

refresher.gif

功能

  • 简单易用。
  • 自定义你想要的加载视图。

用法

基本用法

添加以下代码并将它添加到UITableView中,通过srf_addRefresher。当刷新开始时将调用闭包。

let refresher = RefresherView { [weak self] () -> Void in
    self?.updateItems()
}
tableView.srf_addRefresher(refresher)

每当/任何地方您的刷新任务完成时,调用srf_endRefreshing()

s.tableView.srf_endRefreshing()

轻微自定义的用法

SwiftRefresher的视图与主要系统独立。唯一的要求是符合SwfitRefresherEventReceivable协议。默认视图是SimpleRefreshView。您可以通过以下方式进行一些简单的自定义

let refresher = Refresher { [weak self] () -> Void in
    self?.updateItems()
}
refresher.createCustomRefreshView { () -> SwfitRefresherEventReceivable in
    return SimpleRefreshView(activityIndicatorViewStyle: .White)
}
tableView.srf_addRefresher(refresher)

在这个例子中,我更改了SimpleRefreshView的活动指示器样式为White。但您可以通过创建自己的刷新视图进行更多自定义!

自定义!

只需创建一个符合SwfitRefresherEventReceivable的视图。SwfitRefresherEventReceivable有一个必须实现的功能func didReceiveEvent(event: SwiftRefresherEvent)。通过这个函数,刷新器向视图发送事件。以下是一些事件

public enum SwiftRefresherEvent {
    case Pull(offset: CGPoint, threshold: CGFloat)
    case StartRefreshing
    case EndRefreshing
    case RecoveredToInitialState
}

例如,预设SimpleRefreshView有这个简单的代码。

public func didReceiveEvent(event: SwiftRefresherEvent) {
    switch event {
    case .Pull:
        pullingImageView.hidden = false
    case .StartRefreshing:
        pullingImageView.hidden = true
        activityIndicatorView.startAnimating()
    case .EndRefreshing:
        activityIndicatorView.stopAnimating()
    case .RecoveredToInitialState:
        break
    }
}

RecoveredToInitialState表示结束后,视图将返回到初始状态。在这个状态下,此事件将被调用。

运行时要求

  • iOS8.1或更高版本
  • Xcode 8.0或更高版本
  • Swift 3.0或更高版本

安装和设置

手动安装

要无依赖管理器安装SwiftRefresher,请将/SwiftRefresher中的所有文件添加到您的Xcode项目中。

贡献

请提交问题或提交拉取请求,以便看到您想看到的内容!我们在等待!:)

许可协议

SwiftRefresher根据MIT许可证发布。阅读LICENSE文件以获取更多信息。