GSRefresh 0.5.7

GSRefresh 0.5.7

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最后发布2020年8月
SPM支持 SPM

GeSen 维护。



GSRefresh 0.5.7

  • 作者:
  • Gesen

GSRefresh

示例

刷新

设置下拉刷新

scrollView.refresh.setup(view: CustomRefreshView) {
	/// do something...
	self.scrollView.refresh.endRefreshing()
}

立即触发刷新状态

scrollView.refresh.beginRefreshing()

结束刷新状态

scrollView.refresh.endRefreshing()

自定义刷新视图

extension SomeView: CustomRefresh {

    /// @optional, default is 44.
    /// Sets the height displayed when refreshing.
    var refreshingKeepHeight: CGFloat { return 44 }
    
    /// @optional, default is .init(top: 30, left: 0, bottom: 0, right: 0).
    /// -top: increase the trigger refresh distance.
    /// -left and right: set the horizontal offset.
    /// -bottom: increase the distance from scrollview.
    var refreshInsets: UIEdgeInsets { return .zero }

    /**
     In this method, set the UI in different states.
     There are three status types: initial, pulling, refreshing.
    
     - parameter previous: previous refresh state
     - parameter newState: new refresh state
    */
    func refreshStateChanged(previous: RefreshState, newState: RefreshState) {
  	    /// do something...
    }
  
}

let someView = SomeView(frame: ...)

scrollView.refresh.setup(view: someView) {
	/// do something...
	self.scrollView.refresh.endRefreshing()
}

加载更多

设置上拉加载

scrollView.loadMore.setup(view: CustomLoadMoreView) {
	/// do something...
	self.scrollView.loadMore.endRefreshing(noMore: Bool)
}

立即触发刷新状态

scrollView.loadMore.beginRefreshing()

结束刷新状态并设置是否不再尝试加载数据

scrollView.loadMore.endRefreshing(noMore: Bool)

重置以继续加载数据

scrollView.loadMore.reset()

不再尝试加载数据

scrollView.loadMore.noMore()

自定义 LoadMore 视图

extension SomeView: CustomLoadMore {

    /// @optional, default is 0.
    /// Set the preload configuration, such as half screen 0.5, one screen is 1, two screens are 2, no preload is 0.
    var preload: CGFloat { get }
    
    /// @optional, default is true.
    /// When there is no more data, is it necessary to keep the height of the custom view? If it is false, it will not be displayed.
    var isVisibleNoMore: Bool { get }

    /// @optional, default is true.
    /// Whether to send a request only once per drag. If it is false, it will be called continuously when the offset changes.
    var isOnlyRefreshPerDrag: Bool { get }
    
    /// @optional, default is .zero.
    /// -top: increase the distance from scrollview.
    /// -left and right: set the horizontal offset.
    /// -bottom: increase the distance from the bottom.
    var loadMoreInsets: UIEdgeInsets { get }
    
    /**
     In this method, set the UI in different states.
     There are three status types: initial, refreshing, noMore.
     
     - parameter previous: previous load more state
     - parameter newState: new load more state
     */
    func loadMoreStateChanged(previous: LoadMoreState, newState: LoadMoreState)
  	    /// do something...
    }
  
}

let someView = SomeView(frame: ...)

scrollView.loadMore.setup(view: someView) {
	/// do something...
	self.scrollView.loadMore.endRefreshing(noMore: Bool)
}

需求

  • iOS 8.0+
  • Xcode 10+ (Swift 4.2 + Swift 5.0)

0.4.7

  • iOS 8.0+
  • Xcode 9.x (Swift 4)

0.3.0

  • iOS 8.0+
  • Xcode 9.x (Swift 3.x)

安装

CocoaPods

在您的 Podfile 中:

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

pod "GSRefresh"

并在您的 *.swift 中:

import GSRefresh

Carthage

在您的 Cartfile 中:

github "wxxsw/GSRefresh"

并在您的 *.swift 中:

import GSRefresh

许可证

GSRefresh 可在 MIT 许可下使用。更多信息请参阅 LICENSE 文件。