登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

Refresh 更清爽的下拉刷新·清凉一夏

[复制链接]
来自: HeinzWee 分类: iOS精品源码 上传时间: 2018-4-16 19:56:30
Tag:

项目介绍:

点击进入主页

相比其他刷新库,这个库可能更加适合你!

GitHub license
CocoaPods Compatible
platform
language

特点

  • 支持多样式选择与自定义

内置9种动画样式

  • 非刷新状态自动隐藏

能避免开发者手动调整contentInset后刷新控件的出现而影响视觉体验;最常见的情况时,不存在数据时,底部的刷新的控件未隐藏,使用KafkaRefresh能避免该问题。

  • 刷新结束时滑动抗抖动

当控件结束刷新,UIScrollView如果处于滑动状态,KafkaRefresh将根据刷新控件此时是否显示控制UIScrollView的contntOffset.

  • 支持调整触发刷新的偏移阀值

偏移阀值可自定义,自我把控触发刷新的条件;偏移阀值是基于控件高度的倍数,且须大于1.0。

  • 支持全局配置

KafkaRefreshDefaults支持全局设置样式,更少的代码。

  • 支持进度回调

实时回调拖拽的偏移比例,对于扩展接口,可根据进度调整动画.

  • 自适应contentInset系统调整与手动调整

自适应iOS7以后UINavigationController自动调整scrollview contentOffset,KafkaRefresh也对iOS 11进行了适配;当您手动设置了contentInset的值,也无需担心KafkaRefresh会影响到视觉效果。

  • 解决刷新状态分组视图悬停问题

即使在列表高速滑动置顶时,视图都将跟随ScrollView滑动。

  • 文档覆盖率100%、支持横竖屏切换自适应、iOS 7+。

安装

  • CocoaPods

pod 'KafkaRefresh'
  • Carthage

如果您想通过carthage安装 , 请您申请一个pull request.

使用

1.引入头文件
 #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.结束刷新

/*
    一般方式结束刷新
*/
- (void)endRefreshing;
 
/*
    结束刷新且需要提示文字
*/
- (void)endRefreshingWithAlertText:(NSString *)text completion:(dispatch_block_t)completion;

/*
    结束刷新且不再需要刷新功能
*/
- (void)endRefreshingAndNoLongerRefreshingWithAlertText:(NSString *)text;

自定义

以KafkaheadRefreshControl为例:

 #import "KafkaheadRefreshControl.h"
 @interface CustomHeader : KafkafootRefreshControl
 @end

*
.m

@implementation CustomHeader 

- (void)setupProperties{
   [super setupProperties];
   //初始化属性
}

- (void)kafkaDidScrollWithProgress:(CGFloat)progress max:(const CGFloat)max{
   //进度回调
}

- (void)kafkaRefreshStateDidChange:(KafkaRefreshState)state{
   [super kafkaRefreshStateDidChange:state];
   
   switch (state) {
       case KafkaRefreshStateNone:{
           break;
       }
       case KafkaRefreshStateScrolling:{
           break;
       }
       case KafkaRefreshStateReady:{
           break;
       }
       case KafkaRefreshStateRefreshing:{ 
           break;
       }
       case KafkaRefreshStateWillEndRefresh:{ 
           break;
       }
   }
}
@end

注意事项

  • 请更新至最新版本

  • iOS11之后,如果你使用了estimatedRowHeight,estimatedRowHeight的高度与真实高度相差过大,0.8.3版本之前可能会出现UITableView重复刷新问题,0.8.3版本后该问题已经解决(iOS bug)

交流

  1. 如需要帮助,请邮件 <xorshine@icloud.com>或者wechat:Xiangxh1015;

  2. 个人精力有限,Kafka提供的回调接口足够去增加更丰富的UI效果,很欢迎您一起参与,并提交pull request;

  3. 如果您对该库有更好的设计思路,请务必e-mail或wechat。

License

KafkaRefresh采用MIT开源协议。

相关源码推荐:

我来说两句
*滑动验证:
所有评论(120)
逆鳞九霄 2018-4-17 12:01:45
楼主威武啊,Code4App有你更给力!
回复
编程是什么 2018-4-17 12:01:59
感谢分享,楼主V5~
回复
这是个逗比 2018-4-17 12:02:11
mark,收藏了
回复
kengsir 2018-4-17 12:02:19
学习...学习...
回复
天天bug 2018-4-17 12:02:35
好好 学习了 确实不错
回复
应用安卓 2018-4-17 12:03:13
帮帮顶顶!!
回复
bug是啥 2018-4-17 12:03:16
学习...学习...
回复
code4app热心网友 2018-4-17 15:11:59
虽不明,但觉厉!
回复
code4app热心网友 2018-4-18 08:50:16
学习学习!
回复
提取码:  下载次数:57 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
1380 0 57
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表