jsdw_ios/QuickLocation/UIKit/EmptyDataSet/RefreshStyle.swift

63 lines
1.7 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// RefreshStyle.swift
// GXM-CRM
//
// Created by 霹雳火 on 10/11/2017.
// Copyright © 2017 GuoXiaoMei. All rights reserved.
//
import Foundation
import MJRefresh
import RxSwift
import RxCocoa
public enum RefreshStatus: Int {
case invalidData // 无效的数据
case hasMoreData // 还有更多数据
case noMoreData // 没有更多数据
}
public enum RequestStatus {
case begin
case end
}
/**
设置刷新状态
*/
public extension UIScrollView {
func refresh(status: RefreshStatus, isEmpty: Bool, shouldForcedDisplay: Bool = false) {
// 刷新空数据占位
dl.emptyDataSet?.update(status: status, isEmpty: isEmpty, shouldForcedDisplay: shouldForcedDisplay)
mj_header?.endRefreshing()
switch status {
case .invalidData: // 无效的数据
mj_footer?.endRefreshing()
case .hasMoreData: // 还有更多数据
mj_footer?.endRefreshing()
mj_footer?.isHidden = false
case .noMoreData: // 没有更多数据
mj_footer?.endRefreshingWithNoMoreData()
mj_footer?.isHidden = true
}
// 数据为空,隐藏footer
if isEmpty {
mj_footer?.isHidden = true
}
}
}
public extension MJRefreshHeader {
func addFeedbackGenerator() {
rx.observeWeakly(MJRefreshState.self, "state").subscribe(onNext: { state in
guard state == .pulling else { return }
if #available(iOS 10.0, *) {
let generator = UIImpactFeedbackGenerator(style: .medium)
generator.impactOccurred()
}
}).disposed(by: rx.disposeBag)
}
}