LNRefresh
LNRefresh 是一个轻量级的组件,可以动态扩展下拉刷新功能
支持哪些控件刷新
UIScrollView
、UITableView
、UICollectionView
、UIWebView
、UITextView
示例
来自华尔街见闻的 GIF 图片
样式 | 示例 |
---|---|
通常样式 | ![]() |
动态更改样式 | ![]() |
自定义示例
APP | 示例 |
---|---|
京东 | ![]() |
天猫 | ![]() |
淘宝 | ![]() |
考拉海购 | ![]() |
美团外卖 | ![]() |
网易新闻 | ![]() |
今日头条 | ![]() |
飞猪 | ![]() |
安装
CocoaPods
使用 CocoaPods 进行安装
pod 'LNRefresh'
Carthage
使用 Cartfile 进行安装
github "wedxz/LNRefresh"
文档
如何使用 LNRefresh
添加下拉刷新
__weak typeof (self) wself = self;
//UITableView
[self.tableView addPullToRefresh:^{
[wself pullToRefresh];
}];
//UICollectionView
[self.collectionView addPullToRefresh:^{
[wself pullToRefresh];
}];
//UIWebView
[self.webView.scrollView addPullToRefresh:^{
[wself.webView reload];
}];
结束下拉刷新
//UITableView
[self.tableView endRefreshing];
//UICollectionView
[self.collectionView endRefreshing];
//UIWebView
[self.webView.scrollView endRefreshing];
添加加载更多
//UITableView
[self.tableView addInfiniteScrolling:^{
[wself loadMoreRefresh];
}];
//UICollectionView
[self.collectionView addInfiniteScrolling:^{
[wself loadMoreRefresh];
}];
结束加载更多
//UITableView
[self.tableView endLoadingMore];
//UICollectionView
[self.tableView endLoadingMore];
没有更多数据
//UITableView
[self.tableView noticeNoMoreData];
//UICollectionView
[self.tableView noticeNoMoreData];
自动刷新
[self.scrollView startRefreshing];
更改触发刷新的距离
self.tableView.ln_header.animator.trigger = 100;
全局设置
设置 GIF 图片
+ (void)setAllHeaderAnimatorStateImages:(NSArray *)stateImages
state:(LNRefreshState)state;
+ (void)setAllHeaderAnimatorStateImages:(NSArray *)stateImages
state:(LNRefreshState)state
duration:(NSTimeInterval)duration;
更改全局下拉刷新模式状态
+ (void)changeAllHeaderAnimatorType:(LNRefreshHeaderType)type;
+ (void)changeAllHeaderAnimatorType:(LNRefreshHeaderType)type
bgImage:(UIImage *)image;
+ (void)changeAllHeaderAnimatorType:(LNRefreshHeaderType)type
bgImage:(UIImage *)image
incremental:(CGFloat)incremental;
自定义RefreshAnimator
您需要继承LNHeaderAnimator,重写以下方法。
- (void)setupHeaderView_DIY;
- (void)layoutHeaderView_DIY;
- (void)refreshHeaderView_DIY:(LNRefreshState)state;
- (void)refreshView_DIY:(LNRefreshComponent *)view progress:(CGFloat)progress;
示例: LNHeaderDIYAnimator.m
分析
示例: LNHeaderAnimator+Analysis.m
贡献
许可
版权(c)2017 vvusu