// // UIScrollView+SPRefresh.swift // Thimra // // Created by 曾觉新 on 2025/4/19. // import UIKit extension UIScrollView { func sp_addRefreshHeader(insetTop: CGFloat = 0, block: (() -> Void)?) { self.mj_header = MJRefreshNormalHeader(refreshingBlock: { block?() }) self.mj_header?.ignoredScrollViewContentInsetTop = insetTop } func sp_addRefreshFooter(insetBottom: CGFloat = 0, block: (() -> Void)?) { let footer = MJRefreshAutoNormalFooter(refreshingBlock: { block?() }) footer.ignoredScrollViewContentInsetBottom = insetBottom // footer.stateLabel?.font = .text_sm // footer.stateLabel?.textColor = .system_text_secondary_300 self.mj_footer = footer } // func sp_setRefreshFooterTitle(title: String = NSLocalizedString("已经到底了~", comment: ""), state: MJRefreshState) { // (self.mj_footer as? MJRefreshAutoStateFooter)?.setTitle(title, for: state) // } func sp_addRefreshBackFooter(insetBottom: CGFloat = 0, block: (() -> Void)?) { self.mj_footer = MJRefreshBackNormalFooter(refreshingBlock: { block?() }) self.mj_footer?.ignoredScrollViewContentInsetBottom = insetBottom } func sp_endHeaderRefreshing() { self.mj_header?.endRefreshing() } func sp_endFooterRefreshing() { if self.mj_footer?.state == .noMoreData { return } self.mj_footer?.endRefreshing() } ///重置没有更多 func sp_resetNoMoreData() { self.mj_footer?.resetNoMoreData() } func sp_endRefreshingWithNoMoreData() { // self.mj_footer?.state = .noMoreData self.mj_footer?.endRefreshingWithNoMoreData() } }