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

首頁 > 系統(tǒng) > iOS > 正文

iOS開發(fā)中仿Tumblr點贊心破碎動畫效果

2020-07-26 02:51:07
字體:
供稿:網(wǎng)友

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

1.首先看下效果:

2.模仿Tumblr中的效果應(yīng)用如下:

原理:使用按鈕點擊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開發(fā)中仿Tumblr點贊心破碎動畫效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌拉特后旗| 寿光市| 英山县| 平罗县| 大同市| 吉林市| 太康县| 双牌县| 英山县| 新乡县| 尚志市| 定边县| 远安县| 根河市| 旺苍县| 额尔古纳市| 准格尔旗| 延庆县| 革吉县| 黄浦区| 双流县| 栾城县| 鞍山市| 井冈山市| 晴隆县| 新龙县| 廉江市| 北安市| 姜堰市| 孝义市| 格尔木市| 玉林市| 台州市| 沿河| 保靖县| 台北县| 和龙市| 瓮安县| 墨竹工卡县| 绥宁县| 定安县|