iOS 下拉刷新動畫之--七彩泡泡

先上完整的效果圖,??Gif效果太差將就看看:

效果圖

主要是利用CAShapeLayerUIBezierPath,CAEmitterLayer來實現(xiàn),應為本次重點做的是動畫效果

為了節(jié)省時間,下拉刷新邏輯就借用了MJRefresh


自定義一個類繼承 MJRefreshHeader 支持修改顏色和閑置狀態(tài)的動畫。
默認給了一個??,大家可以發(fā)揮想象。

@interface ZTHeaderRefresh : MJRefreshHeader

@property (nonatomic, strong) UIBezierPath *path;
@property (nonatomic, strong) UIColor *tintColor;

@end

使用方法與MJRefresh相同

 __weak typeof(self) weakSelf = self;
    ZTHeaderRefresh *header = [ZTHeaderRefresh headerWithRefreshingBlock:^{
        [weakSelf requsetData];
    }];
    header.tintColor = [UIColor orangeColor];
//    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 50, 40) cornerRadius:10];
//    header.path = path; 
    self.tableView.mj_header = header;



- (void)requsetData {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.tableView.mj_header endRefreshing];
    });
}

說一下七彩泡泡的實現(xiàn)效果吧,其實也很簡單利用CAEmitterLayer發(fā)射器實現(xiàn)

- (CAEmitterLayer *)refreshingLayer {
    if (!_refreshingLayer) {
        _refreshingLayer = [CAEmitterLayer layer];
        _refreshingLayer.renderMode = kCAEmitterLayerAdditive;
        _refreshingLayer.emitterShape = kCAEmitterLayerRectangle;
        _refreshingLayer.emitterCells = @[[self getEmitterCell]];
    }
    return _refreshingLayer;
}

//cell
- (CAEmitterCell *)getEmitterCell
{
    CAEmitterCell *cell = [[CAEmitterCell alloc] init];
    CGFloat colorChangeValue  = 1;
    cell.blueRange = colorChangeValue;
    cell.redRange =  colorChangeValue;
    cell.greenRange =  colorChangeValue;
    
    cell.birthRate       = 5;
    cell.speed           = 5.f;
    cell.velocity        = -20.f;
    cell.velocityRange   = -40.f;
    cell.yAcceleration   = - 20.f;
    cell.emissionRange   = M_PI;
    cell.contents =  (__bridge id )([UIImage imageNamed:@"bubble"].CGImage);
    cell.lifetime        = 15;
    cell.lifetimeRange   = 20;
    cell.scale           = 0.1;
    cell.scaleRange      = 0.3;
    return cell;
}

懶加載一個CAEmitterLayer 配置好cell, bubble 是一個泡泡圖片,添加到父View上 。 屬性有點多具體含義參考這里

泡泡發(fā)射器


支持自定義閑置動畫

自定義path

Demo代碼已經(jīng)上傳到GitHub 傳送門


簡單的雙層波浪動畫效果


一行代碼實現(xiàn)第三方登錄,分享,支付功能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,213評論 4 61
  • 因為職業(yè)的原因,做人力資源久了,就天天琢磨人性是什么,人該怎么激勵。特別是自己的孩子現(xiàn)在到了“七歲八歲狗都嫌”的年...
    簡單最上乘閱讀 342評論 0 3
  • 生命的開端 閔煜與我相識于一九九八年炎熱的南臺灣。在此之前,我是生活在中國西南端的納西族女孩,他是長在寶島...
    yz安靜的小耳朵閱讀 857評論 3 4
  • 昏暗的燈光下,老鞋匠手中的大針頭正在準確的刺向鞋幫子,細細的縫合,嚴密的扎緊。然后拿起那只自制的鞋墊緊緊的將鞋幫子...
    墮落天使之翼閱讀 745評論 0 0
  • 一天天就這樣過去了 簡簡單單 晨光熹微 暖陽穿透過玻璃窗 漸漸地照射在床沿 大夢初醒 伸伸懶腰打個哈欠 美好的一天...
    大姝閱讀 289評論 0 0

友情鏈接更多精彩內(nèi)容