高度可扩展、自定义、多样式的刷新框架。
Features 特点 描述支持多样式选择与自定义 KafkaRefresh内置多种刷新样式,且可对样式进行自定义。扩展接口可让开发者集成更多丰富的UI效果。
非刷新状态自动隐藏 能避免开发者手动调整contentInset后刷新控件的出现而影响视觉体验;最常见的情况时,开题报告,不存在数据时,底部的刷新的控件未隐藏,使用KafkaRefresh能避免该问题。
刷新结束时滑动抗抖动 当控件结束刷新,UIScrollView如果处于滑动状态,KafkaRefresh将根据刷新控件此时是否显示控制UIScrollView的contntOffset
支持设置触发刷新的偏移阀值 偏移阀值可自定义,自我把控触发刷新的条件;偏移阀值是基于控件高度的倍数,开题报告,且必须大于1.0;否则无效。
支持全局配置 KafkaRefreshDefaults支持全局设置样式
支持进度回调 实时回调拖拽的偏移比例,对于扩展接口,可根据进度调整动画
自适应系统调整与手动调整 --
解决刷新状态分组视图悬停问题 当UITableView优多个分组,且分组视图的高度非0时,刷新状态将出现半空悬停的效果。从EGO以来,尝试解决该问题的刷新框架始于MJRefresh,但可惜的是,MJRefresh并未完美解决该问题(本质是因为contentOffset并非连续变化)。KafkaRefresh即使在刷新状态快速滑动,也能避开该问题的出现。
文档覆盖率100% 可在头文件中查看所有方法和类的使用
支持横竖屏切换自适应 无需在横竖屏切换时考虑刷新问题
iOS 7+ 支持iOS 7以上系统。包括iPhone X
Installation
CocoaPods
pod 'KafkaRefresh'Usage1.引入头文件 #import 'KafkaRefresh.h' 2.初始化控件方式一
[self.tableView bindRefreshStyle:KafkaRefreshStyleAnimatableArrow fillColor:MainColor atPosition:KafkaRefreshPositionHeader refreshHanler:^{ //....... }]; [self.tableView bindRefreshStyle:KafkaRefreshStyleAnimatableArrow fillColor:MinorColor atPosition:KafkaRefreshPositionFooter refreshHanler:^{ //..... }];方式二
KafkaArrowHeader * arrow = [[KafkaArrowHeader alloc] init]; arrow.refreshHandler = ^{ //..... }; self.tableView.headRefreshControl = arrow;方式三 全局配置
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[KafkaRefreshDefaults standardRefreshDefaults] setHeaderDefaultStyle:KafkaRefreshStyleAnimatableRing]; return YES; } [self.tableView bindDefaultRefreshStyleAtPosition:KafkaRefreshPositionHeader refreshHanler:^{ //..... }]; 3.手动触发刷新 [self.tableView.headRefreshControl beginRefreshing]; [self.tableView.footRefreshControl beginRefreshing];4.结束刷新 [self.tableView.headRefreshControl endRefreshing]; [self.tableView.footRefreshControl endRefreshing];Customize以KafkaheadRefreshControl为例:
#import 'KafkaheadRefreshControl.h' @interface CustomHeader : KafkafootRefreshControl @end*
.m
如需要帮助,请邮件 <xorshine@icloud.com>或者wechat:Xiangxh1015;
如遇到bug,请在Github open an issue,烦请您提供重现步骤;
个人精力有限,Kafka提供的回调接口足够去增加更丰富的UI效果,很欢迎您一起参与,并提交pull request;
如果您对该库有更好的设计思路,请务必e-mail或wechat。
LicenseKafkaRefresh利用MIT开源协议。