Home

Awesome

<p align="center"> <a href=#> <img src="https://github.com/xorshine/KafkaRefresh/blob/master/Assets/titleView.png" alt="" width=60 height=60> </a> <h3 align="center">KafkaRefresh</h3> <p align="center"> Animated, customizable, and flexible pull-to-refresh framework for faster and easier iOS development. <br> <br> <a href="https://github.com/xorshine/KafkaRefresh/issues/new?template=bug_en.md">Report bug</a> · <a href="https://github.com/xorshine/KafkaRefresh/issues/new?template=feature.md&labels=feature">Request feature</a> · <a href="https://github.com/xorshine/KafkaRefresh/blob/master/CREADME.md">中文文档</a> </p> </p> <br>

Status

<!--[![Travis](https://img.shields.io/travis/rust-lang/rust.svg)](https://github.com/xorshine/KafkaRefresh)[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FHHHsiang%2FKafkaRefresh.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FHHHsiang%2FKafkaRefresh?ref=badge_shield) -->

GitHub license CocoaPods Compatible platform language Email


Screenshots

<table> <tr height="60px" align="center"> <td width="20%"><strong>KafkaRefreshStyle</strong></td> <td width="40%"><strong>Top Screenshots</strong></td> <td width="40%"><strong>Bottom Screenshots</strong></td> </tr> <tr align="center" height="120px"> <td width="300px">Native</td> <td><img src="Assets/Gif/native.gif"></img></td> <td><img src="Assets/Gif/_native.gif"></img></td> </tr> <tr align="center" height="120px"> <td>ReplicatorWoody</td> <td><img src="Assets/Gif/woody.gif"></img></td> <td><img src="Assets/Gif/_woody.gif"></img></td> </tr> <tr align="center" height="120px"> <td>ReplicatorAllen</td> <td><img src="Assets/Gif/allen.gif"></img></td> <td><img src="Assets/Gif/_allen.gif"></img></td> </tr> <tr align="center" height="120px"> <td>ReplicatorCircle</td> <td><img src="Assets/Gif/circle.gif"></img></td> <td><img src="Assets/Gif/_circle.gif"></img></td> </tr> <tr align="center" height="120px"> <td>ReplicatorDot</td> <td><img src="Assets/Gif/dot.gif"></img></td> <td><img src="Assets/Gif/_dot.gif"></img></td> </tr> <tr align="center" height="120px"> <td>ReplicatorArc</td> <td><img src="Assets/Gif/arc.gif"></img></td> <td><img src="Assets/Gif/_arc.gif"></img></td> </tr> <tr align="center" height="120px"> <td>ReplicatorTriangle</td> <td><img src="Assets/Gif/triangle.gif"></img></td> <td><img src="Assets/Gif/_triangle.gif"></img></td> </tr> <tr align="center" height="120px"> <td>AnimatableRing</td> <td><img src="Assets/Gif/ring.gif"></img></td> <td><img src="Assets/Gif/_ring.gif"></img></td> </tr> <tr align="center" height="120px"> <td>AnimatableArrow</td> <td><img src="Assets/Gif/arrow.gif"></img></td> <td><img src="Assets/Gif/_arrow.gif"></img></td> </tr> </table>

Features

Installation

pod 'KafkaRefresh'

If anyone wants to install by carthage , please supply a pull request. I'm not using this package manager myself.

Usage

 #import "KafkaRefresh.h" 
Initialization
#pragma mark - head

[self.tableView bindHeadRefreshHandler:^{
        
    } themeColor:MainColor refreshStyle:KafkaRefreshStyleAnimatableArrow];

#pragma mark - foot

[self.tableView bindFootRefreshHandler:^{
        
    } themeColor:MainColor refreshStyle:KafkaRefreshStyleAnimatableArrow]; 

#pragma mark - auto refresh

self.tableView.footRefreshControl.autoRefreshOnFoot = YES;
 KafkaArrowHeader * arrow = [[KafkaArrowHeader alloc] init];
 arrow.refreshHandler = ^{
	 //to do something... 
 };
 self.tableView.headRefreshControl = arrow;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
	[[KafkaRefreshDefaults standardRefreshDefaults] setHeaderDefaultStyle:KafkaRefreshStyleAnimatableRing];
	return YES;
}

#pragma mark - global

[self.tableView bindGlobalStyleForFootRefreshHandler:^{
        
}];
Trigger Refresh Manually
 [self.tableView.headRefreshControl beginRefreshing];
 [self.tableView.footRefreshControl beginRefreshing];
End Refresh

When you finish refreshing and don't need to show any hints, or any animation, call the following method.

- (void)endRefreshing; 

When you finish the refresh and need to display the prompt message, call the following method.

- (void)endRefreshingWithAlertText:(NSString *)text completion:(dispatch_block_t)completion; 

When you end the refresh and no longer need to refresh, call the following method.

- (void)endRefreshingAndNoLongerRefreshingWithAlertText:(NSString *)text;
Resume Refresh Available
/**
 After you call ‘endRefreshingAndNoLongerRefreshingWithAlertText’,
 you need to resume refresh available
 */
- (void)resumeRefreshAvailable;

Customize

Take KafkaheadRefreshControl as an example

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

- (void)kafkaDidScrollWithProgress:(CGFloat)progress max:(const CGFloat)max{
   //progress callback
}

- (void)kafkaRefreshStateDidChange:(KafkaRefreshState)state{
   [super kafkaRefreshStateDidChange:state];
}
@end

Warnings And Precautions

Communication

  1. If you need help,please email xorshine@icloud.com.
  2. If you found a bug,and can provide steps to reliably reproduce it, open an issue.
  3. Personal energy is limited, Kafka provides callback interface enough to increase the richer UI effect, we welcome you to join together and submit the pull request.

License

KafkaRefresh is released under the MIT license. See LICENSE for details.

FOSSA Status