// // 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 = false } // 数据为空,隐藏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) } }