点赞我们都知道,最简单的就是通过Bool变量或者selected来判断是否选中,然后替换原来的图片,要想有个简单的动画效果,前面博主写过Core Animation里的关键帧动画,这里就用关键帧动画CAKeyframeAnimation来做,只需要在按钮响应方法中添加以下代码,同时替换图片:
if (_isSelected == NO) {
_isSelected = YES;
[likeBtn setBackgroundImage:[UIImage imageNamed:@"detail_unup_group"] forState:UIControlStateNormal];
}
else
{
_isSelected = NO;
[likeBtn setBackgroundImage:[UIImage imageNamed:@"detail_up_group"] forState:UIControlStateNormal];
}
CAKeyframeAnimation * animation;
animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
animation.duration = 0.5;
animation.delegate = self;
animation.removedOnCompletion = YES;
animation.fillMode = kCAFillModeForwards;
NSMutableArray *values = [NSMutableArray array];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1, 1.1, 1.0)]];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9, 0.9, 0.9)]];
[values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
animation.values = values;
[likeBtn.layer addAnimation:animation forKey:nil];
是不是很简单,自己找张图片试试吧,Demo就不放了。
还可以加上爆炸的烟花效果,使用CAEmitterLayer,基本使用前面有介绍,但是具体的掌控比较复杂,有兴趣的自己研究下吧。