CBStoreHouseRefreshControl alternatives and similar libraries
Based on the "Pull to Refresh" category.
Alternatively, view CBStoreHouseRefreshControl alternatives based on common mentions on social networks and blogs.
-
SVPullToRefresh
Give pull-to-refresh & infinite scrolling to any UIScrollView with 1 line of code. -
DGElasticPullToRefresh
Elastic pull to refresh for iOS developed in Swift -
BreakOutToRefresh
Play BreakOut while loading - A playable pull to refresh view using SpriteKit -
PullToMakeSoup
Custom animated pull-to-refresh that can be easily added to UIScrollView -
PullToBounce
Animated "Pull To Refresh" Library for UIScrollView. Inspired by https://dribbble.com/shots/1797373-Pull-Down-To-Refresh -
ESPullToRefresh
#Busy Re-Building....# An easy way to use pull to refresh and infinite scrolling in Swift. Pod 'ESPullToRefresh' -
UzysAnimatedGifPullToRefresh
Add PullToRefresh using animated GIF to any scrollView with just simple code -
KafkaRefresh
Animated, customizable, and flexible pull-to-refresh framework for faster and easier iOS development. -
BOZPongRefreshControl
A pull-down-to-refresh control for iOS that plays pong, originally created for the MHacks III iOS app -
mntpulltoreact
One gesture, many actions. An evolution of Pull to Refresh. -
RainyRefreshControl
Simple refresh control for iOS based on SpriteKit and Core Graphics -
PullToRefreshSwift
iOS Simple Cool PullToRefresh Library. It is written in pure swift. -
PullToRefreshCoreText
PullToRefresh extension for all UIScrollView type classes with animated text drawing style -
ADChromePullToRefresh
ADChromePullToRefresh -
GIFRefreshControl
GIFRefreshControl is a pull to refresh that supports GIF images as track animations. -
HTPullToRefresh
Easily add vertical and horizontal pull to refresh to any UIScrollView. Can also add multiple pull-to-refesh views at once. -
SurfingRefreshControl
Customizable pull-to-refresh control,written in pure Swift.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of CBStoreHouseRefreshControl or a related project?
README
CBStoreHouseRefreshControl 
What is it?
A fully customizable pull-to-refresh control for iOS inspired by Storehouse iOS app
You can use any shape through a plist
file, like this one:
Which files are needed?
CBStoreHouseRefreshControl is available through CocoaPods, to install it simply add the following line to your Podfile:
pod 'CBStoreHouseRefreshControl'
Alternatively, you can just drag CBStoreHouseRefreshControl (.h .m)
and BarItem (.h .m)
into your own project.
How to use it
You can attach it to any UIScrollView
like UITableView
or UICollectionView
using following simple static method:
+ (CBStoreHouseRefreshControl*)attachToScrollView:(UIScrollView *)scrollView
target:(id)target
refreshAction:(SEL)refreshAction
plist:(NSString *)plist;
self.storeHouseRefreshControl = [CBStoreHouseRefreshControl attachToScrollView:self.tableView target:self refreshAction:@selector(refreshTriggered:) plist:@"storehouse"];
Or, using this method for more configurable options:
+ (CBStoreHouseRefreshControl*)attachToScrollView:(UIScrollView *)scrollView
target:(id)target
refreshAction:(SEL)refreshAction
plist:(NSString *)plist
color:(UIColor *)color
lineWidth:(CGFloat)lineWidth
dropHeight:(CGFloat)dropHeight
scale:(CGFloat)scale
horizontalRandomness:(CGFloat)horizontalRandomness
reverseLoadingAnimation:(BOOL)reverseLoadingAnimation
internalAnimationFactor:(CGFloat)internalAnimationFactor;
self.storeHouseRefreshControl = [CBStoreHouseRefreshControl attachToScrollView:self.tableView target:self refreshAction:@selector(refreshTriggered:) plist:@"storehouse" color:[UIColor whiteColor] lineWidth:1.5 dropHeight:80 scale:1 horizontalRandomness:150 reverseLoadingAnimation:YES internalAnimationFactor:0.5];
Then, implement UIScrollViewDelegate
in your UIViewController
if you haven't already, and pass the calls through to the refresh control:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[self.storeHouseRefreshControl scrollViewDidScroll];
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[self.storeHouseRefreshControl scrollViewDidEndDragging];
}
Lastly, make sure you've implemented the refreshAction
you passed it earlier to listen for refresh triggers:
- (void)refreshTriggered
{
//call your loading method here
//Finshed loading the data, reset the refresh control
[self.storeHouseRefreshControl finishingLoading];
}
For more details, please check out the demo app's code.
How to use your own shape
The CBStoreHouseRefreshControl's shape contains bunch of BarItem
for animation, each BarItem
is running its own animation, you need to provide startPoint
and endPoint
through a plist file.
All BarItem
will share one coordinate system whose origin is at the top-left corner. For example if you want to draw a square, the plist will look like this:
The result will look like this:
Notes:
- Make sure you put the right key which are
startPoints
andendPoints
. - Make sure you are using the right format (
{x,y}
) for coordinates. - The highlight/loading animation will highlight each bar item in the same order you declare them in plist, use
reverseLoadingAnimation
to reverse the animation.
Easy way to generate startPoint
and endPoint
?
@isaced mentions that it's easier to use PaintCode to generate startPoint
and endPoint
:
Result:
You can get more info here.
Configuration
Play with following parameters to configure CBStoreHouseRefreshControl's view and animation:
- Set the bar color with the
color
parameter - Set the bar width with the
lineWidth
parameter - Set the height of control with the
dropHeight
parameter - Set the scale of control with the
scale
parameter - Adjust how disperse the bar items appear/disappear by changing the
horizontalRandomness
parameter - Set if reversing the loading animation with the
reverseLoadingAnimation
parameter, if set toYES
, the last bar item will be highlighted firstly. - Adjust the time offset of the appear/disappear animation by changing the
internalAnimationFactor
parameter, for example ifinternalAnimationFactor
is 1 all bar items will appear/disappear all together.
Who's using it?
We've a wiki page for that, feel free to add your projects there!
Author
Suyu Zhang
[email protected]
suyuzhang.com
License
Copyright (c) 2014 Suyu Zhang . See the LICENSE file for license rights and limitations (MIT).
*Note that all licence references and agreements mentioned in the CBStoreHouseRefreshControl README section above
are relevant to that project's source code only.