点赞我们都知道,最简单的就是通过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,基本使用前面有介绍,但是具体的掌控比较复杂,有兴趣的自己研究下吧。