国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS開發中仿Tumblr點贊心破碎動畫效果

2019-10-21 18:47:04
字體:
來源:轉載
供稿:網友

 最近Tumblr輕博客無論是web端還是移動端,都非常受歡迎,簡單調研了一下,其中動畫是我感興趣的,特此寫了個仿Tumblr點贊心破碎動畫;

1.首先看下效果:

ios點贊動畫效果,ios仿tumblr點贊,仿tumblr心破碎

2.模仿Tumblr中的效果應用如下:

ios點贊動畫效果,ios仿tumblr點贊,仿tumblr心破碎

原理:使用按鈕點擊Action增加兩個事件,通過改變背景hidden和frame,切換圖片,增加動畫效果等;

setupUI及touch Action:

<span style="font-size:14px;">- (void)setupUI {   // 點擊的btn   UIButton *praiseBtn = [UIButton buttonWithType:UIButtonTypeCustom];   praiseBtn.frame = CGRectMake(100, 200, KKPraiseBtnWH, KKPraiseBtnWH);   [praiseBtn setImage:[UIImage imageNamed:@"icon_like"] forState:UIControlStateNormal];   [praiseBtn setImage:[UIImage imageNamed:@"icon_likeon"] forState:UIControlStateSelected];   [self.view addSubview:praiseBtn];   [praiseBtn addTarget:self action:@selector(clickTheBtn:) forControlEvents:UIControlEventTouchUpInside];   _praiseBtn = praiseBtn;   // 放大后的btn   _coverBtn = [UIButton buttonWithType:UIButtonTypeCustom];   _coverBtn.frame = praiseBtn.frame;   _coverBtn.alpha = 0;   [_coverBtn setImage:[UIImage imageNamed:@"big"] forState:UIControlStateSelected];   [_coverBtn setImage:[UIImage imageNamed:@"big"] forState:UIControlStateNormal];   [self.view insertSubview:_coverBtn belowSubview:praiseBtn];   _cancelPraiseImg = [[UIImageView alloc]initWithFrame:CGRectMake(80, 150, KKPraiseBtnWH*2, KKPraiseBtnWH*2*KKToBrokenHeartWH)];   _cancelPraiseImg.hidden = YES;   _cancelPraiseImg.centerX = _praiseBtn.centerX;   [self.view addSubview:_cancelPraiseImg]; } -(void)clickTheBtn:(UIButton *)btn {   [self playAnimation];   btn.userInteractionEnabled = NO;   btn.selected = !btn.selected; } -(void)playAnimation{   if (!_praiseBtn.selected) {     _coverBtn.alpha = 1;     [UIView animateWithDuration:1.0f animations:^{       _coverBtn.frame = CGRectMake(80, 100, KKPraiseBtnWH*2, KKPraiseBtnWH*2);       CAKeyframeAnimation *anima = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"];       NSValue *value1 = [NSNumber numberWithFloat:-M_PI/180*5];       NSValue *value2 = [NSNumber numberWithFloat:M_PI/180*5];       NSValue *value3 = [NSNumber numberWithFloat:-M_PI/180*5];       anima.values = @[value1,value2,value3];       anima.repeatCount = MAXFLOAT;       [_coverBtn.layer addAnimation:anima forKey:nil];       _coverBtn.alpha = 0;       _coverBtn.centerX = _praiseBtn.centerX;     } completion:^(BOOL finished) {       _coverBtn.frame = _praiseBtn.frame;       _praiseBtn.userInteractionEnabled = YES;     }];   } else {     _cancelPraiseImg.hidden = NO;     NSArray *imgArr = [NSArray arrayWithObjects:[UIImage imageNamed:@"icon_like_broken1"],[UIImage imageNamed:@"icon_like_broken2"],[UIImage imageNamed:@"icon_like_broken3"],[UIImage imageNamed:@"icon_like_broken4"], nil nil];     _cancelPraiseImg.animationImages = imgArr;     _cancelPraiseImg.animationDuration = KKBorkenTime;     _cancelPraiseImg.animationRepeatCount = 1;     [_cancelPraiseImg startAnimating];     [UIView animateWithDuration:KKBorkenTime animations:^{       _cancelPraiseImg.frame = CGRectMake(80, 200, KKPraiseBtnWH*2, KKPraiseBtnWH*2*KKToBrokenHeartWH);       _cancelPraiseImg.alpha = 0;     }completion:^(BOOL finished) {       _cancelPraiseImg.frame = CGRectMake(80, 150, KKPraiseBtnWH*2, KKPraiseBtnWH*2*KKToBrokenHeartWH);       _cancelPraiseImg.alpha = 1;       _praiseBtn.userInteractionEnabled = YES;     }];   } }</span> 

以上所述是小編給大家介紹的iOS開發中仿Tumblr點贊心破碎動畫效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 瑞昌市| 铁岭市| 分宜县| 安康市| 哈密市| 灵丘县| 九龙县| 襄汾县| 阿图什市| 策勒县| 太仆寺旗| 辽阳县| 安图县| 汉中市| 宜阳县| 瓮安县| 青铜峡市| 青河县| 汾西县| 开原市| 夏河县| 张家口市| 房产| 南宫市| 出国| 延长县| 溧水县| 金阳县| 景宁| 鹰潭市| 云南省| 繁峙县| 河源市| 扎赉特旗| 桐庐县| 鱼台县| 广元市| 湘潭市| 德钦县| 平顺县| 金川县|