欢迎光临
我们一直在努力

Swift开发,简单易用刷新控件ZVRefreshing

建站超值云服务器,限时71元/月

Swift开发,简单易用刷新控件ZVRefreshing

项目介绍:

ZVRefreshing

Carthage compatible
(https://github.com/Carthage/Carthage )

ZRefreshing 是使用纯Swift开发,简单易用刷新控件。

Installation

Cocoapod

第一步,安装 CocoaPods,关于Pods更多的介绍和功能,请移步CocoaPods 主页;

$ sudo gem install cocoapods

第二步, 使用CocoaPods集成 ZVRefreshing ,并写入到你的Podfile中;

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'

target 'TargetName' do
    use_frameworks!
    pod 'ZVRefreshing', :git => 'https://github.com/zevwings/ZVRefreshing.git'
end

最后,使用CocoaPods 安装你的依赖库。

$ pod install

Carthage

第一步,使用Homebrew安装Carthage,关于Carthage更多的介绍和功能,请移步Carthage 主页;

$ brew update
$ brew install carthage

第二步, 使用Carthage集成 ZVRefreshing ,并写入到你的Cartfile中;

github "zevwings/ZVRefreshing" ~> 0.0.1

第三步,使用Carthage 安装依赖;

$ carthage update

最后,在Carthage/Build文件夹下面找到 ZVRefreshing.framework 并拖到Targets -> Genral的Embedded Binaries下。

Manual

第一步,下载本项目,并将 ZVRefreshing.xcodeproj 拖到你的目录下;

第二步,在你的项目配置找到 Targets -> Genral -> Embedded Binaries,点击 + 按钮, 选择ZVRefreshing.framework 并添加到工程。

Usage

在需要使用 ZVRefreshing时,使用 import ZVRefreshing导入便可以使用

Header

  1. 使用Target-Action初始化方法,初始化Header

let header = RefreshNormalHeader()
header?.addTarget(self, action: #selector(DetailTableViewController.refreshAction(_:)))
self.tableView.header = header
  1. 使用Block初始化方法,初始化Header

let header = RefreshHeader(refreshHandler: {
             // Your code
})
self.tableView.header = header
  1. 给Header添加 Target and Action

header?.addTarget(self, action: #selector(ViewController.refreshAction(_:))

func refreshAction(_ sender: RefreshComponent) {
    // your code
}
  1. 开始更新

self.tableView.header?.beginRefreshing()
  1. 停止更新

self.tableView.header?.beginRefreshing()
  1. 隐藏上次更新时间文本

header.lastUpdatedTimeLabel.isHidden = true
  1. 隐藏状态文本

header.stateLabel.isHidden = true
  1. 自定义状态文本

header.setTitle("下拉后更新...", forState: .idle)
  1. 自定义动画图片

header.setImages(refreshingImages, state: .refreshing)
header.setImages(refreshingImages, duration: 1.0, state: .refreshing)
  1. 自定义 ActivityIndicator.activityIndicatorViewStyle 属性

header.activityIndicatorViewStyle = .whiteLarge
  1. 自定义 TableView.contentInset属性时,需要设置 RefreshComponent.ignoredScrollViewContentInsetTop属性

self.tableView.contentInset = UIEdgeInsets(top: 30, left: 0, bottom:0, right: 0)
header.ignoredScrollViewContentInsetTop = 30
  1. 自定义 ArrowImageView/activityIndicator 与 状态文本间距

header.labelInsetLeft = 32.0

Footer

  1. 使用Target-Action初始化方法,初始化Footer

let footer = RefreshFooter(target: self, action: #selector(DetailTableViewController.refreshAction(_:)))
self.tableView.footer = footer
  1. 使用Block初始化方法,初始化Footer

let footer = RefreshFooter {
            
        }
self.tableView.footer = footer
  1. 给Footer添加Target-Action

footer?.addTarget(self, action: #selector(ViewController.refreshAction(_:))

func refreshAction(_ sender: RefreshComponent) {
    // your code
}
  1. 开始更新

self.tableView.footer?.beginRefreshing()
  1. 停止更新

self.tableView.footer?.beginRefreshing()
  1. 隐藏状态文本

footer.stateLabel.isHidden = true
  1. 自定义状态文本

footer.setTitle("下拉后更新...", forState: .idle)
  1. 自定义动画图片

footer.setImages(refreshingImages, state: .refreshing)
footer.setImages(refreshingImages, duration: 1.0, state: .refreshing)
  1. 自定义 ActivityIndicator.activityIndicatorViewStyle 属性

footer.activityIndicatorViewStyle = .whiteLarge
  1. 自定义 TableView.contentInset属性时,需要设置 RefreshComponent.ignoredScrollViewContentInsetTop属性

self.tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 30, right: 0)
footer.ignoredScrollViewContentInsetBottom
  1. 自定义 ActivityIndicator 与 状态文本间距

footer.labelInsetLeft = 32.0

自定义方法

当需要自定义刷新控件时,可以继承RefreshComponent或者其子类,支持重写的属性,方法如下

  1. 控件刷新状态

open var state: RefreshState
  1. 控件色调

open override var tintColor: UIColor!
  1. 控件初始化

open func prepare() {}
  1. 控件位置

open func placeSubViews() {}
  1. UIScrollView属性监听方法

  • 监听UIScrollView.contentOffset

open func scrollViewContentOffsetDidChanged(_ change: [NSKeyValueChangeKey: Any]?) {}
  • 监听UIScrollView.contentSize

open func scrollViewContentSizeDidChanged(_ change: [NSKeyValueChangeKey: Any]?) {}
  • 监听UIScrollView.panGestureRecognizer.state

open func scrollViewPanStateDidChanged(_ change: [NSKeyValueChangeKey: Any]?) {}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Swift开发,简单易用刷新控件ZVRefreshing
分享到: 更多 (0)