Latest 1.1.0
Homepage https://github.com/KittenYang/KYJellyPullToRefresh
License MIT
Platforms ios , requires ARC
Frameworks Foundation, UIKit
Authors

KYJellyPullToRefresh

CocoaPods Version
License
Platform

Usage

pod 'KYJellyPullToRefresh', '~> 1.1.0'

How To Use

Firstly,in your ViewController or TableViewController,initiate the Jellview and the "displayLink" in the - (void)scrollViewDidScroll:(UIScrollView *)scrollView method:
Like this:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (self.displayLink == nil && (-scrollView.contentOffset.y - 64.5) > 0) {
        self.jellyView = [[JellyView alloc]initWithFrame:CGRectMake(0, -jellyHeaderHeight , [UIScreen mainScreen].bounds.size.width, jellyHeaderHeight)];
        self.jellyView.backgroundColor = [UIColor clearColor];
        [self.view insertSubview:self.jellyView aboveSubview:self.tableView];
        self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(displayLinkAction:)];
        [self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
    }
}

Then you should change the controlPoint of the Bezier Path

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{

    CGFloat offset = -scrollView.contentOffset.y - 64.5;
    if (offset >= 130) {
        self.jellyView.isLoading = YES;
        [UIView animateWithDuration:0.3 delay:0.0f usingSpringWithDamping:0.4f initialSpringVelocity:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{

            self.jellyView.controlPoint.center = CGPointMake(self.jellyView.userFrame.size.width / 2, jellyHeaderHeight);
            NSLog(@"self.jellyView.controlPoint.center:%@",NSStringFromCGPoint(self.jellyView.controlPoint.center));
            self.tableView.contentInset = UIEdgeInsetsMake(130+64.5, 0, 0, 0);
        } completion:^(BOOL finished) {
            [self performSelector:@selector(backToTop) withObject:nil afterDelay:2.0f];
        }];
    }
}

Lastest,remove everything:

//动画结束,删除一切
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    if (self.jellyView.isLoading == NO) {
        [self.jellyView removeFromSuperview];
        self.jellyView = nil;
        [self.displayLink invalidate];
        self.displayLink = nil;
    }
}

Intro: http://kittenyang.com/cadisplaylinkanduibezierpath/

License

This project is under MIT License. See LICENSE file for more information.

Latest podspec

{
    "name": "KYJellyPullToRefresh",
    "version": "1.1.0",
    "summary": "u5b9eu73b0u5f39u6027u7269u7406u6548u679cu7684u4e0bu62c9u5237u65b0",
    "description": "                   u5b9eu73b0u6709u5f27u5ea6u7684u5f62u53d8u52a8u753bu4ee5u53cau91cdu529bu5760u843du5c0fu7403u7684u4e0bu62c9u5237u65b0n",
    "homepage": "https://github.com/KittenYang/KYJellyPullToRefresh",
    "license": "MIT",
    "authors": {
        "KittenYang": "[email protected]"
    },
    "platforms": {
        "ios": null
    },
    "source": {
        "git": "https://github.com/KittenYang/KYJellyPullToRefresh.git",
        "tag": "1.1.0"
    },
    "source_files": "KYJellyViewClass/*.{h,m}",
    "frameworks": [
        "Foundation",
        "UIKit"
    ],
    "requires_arc": true
}

Pin It on Pinterest

Share This