这篇文章主要介绍了iOS开发中如何仿Tumblr点赞心破碎动画效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1.首先看下效果:
2.模仿Tumblr中的效果应用如下:
原理:使用按钮点击Action增加两个事件,通过改变背景hidden和frame,切换图片,增加动画效果等;
setupUI及touch Action:
<span >- (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点赞心破碎动画效果”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。