ios 做不倒翁动画效果
2016-07-04 15:33
736 查看
#pragma mark - 矫正不倒翁位置 - (void)setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{ CGRect oldFrame = view.frame; view.layer.anchorPoint = anchorpoint; view.frame = oldFrame; } - (void)startShowAnimation{ [self setAnchorPoint: CGPointMake(0.5,1) forView:_babyImage]; CABasicAnimation *displacementYAnimation = [CABasicAnimation animationWithKeyPath:@"position.y"]; displacementYAnimation.fromValue = @(_babyImage.layer.position.y); displacementYAnimation.toValue = @(_babyImage.layer.position.y-5); displacementYAnimation.duration = 0.01; displacementYAnimation.removedOnCompletion = NO; displacementYAnimation.fillMode = kCAFillModeForwards; CABasicAnimation* startAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; startAnimation.toValue = [NSNumber numberWithFloat:-(M_PI/4) ]; startAnimation.duration = 0.2; startAnimation.beginTime = 0.01; startAnimation.cumulative = NO; startAnimation.removedOnCompletion = NO; startAnimation.fillMode = kCAFillModeForwards; CABasicAnimation *backCenterAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; backCenterAnimation.toValue = [NSNumber numberWithFloat:0]; backCenterAnimation.duration = 0.2; backCenterAnimation.beginTime = 0.2; backCenterAnimation.removedOnCompletion = NO; backCenterAnimation.fillMode = kCAFillModeForwards; CABasicAnimation *endAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; endAnimation.toValue = [NSNumber numberWithFloat:(M_PI/4) ]; endAnimation.duration = 0.2; endAnimation.beginTime = 0.4; endAnimation.removedOnCompletion = NO; endAnimation.fillMode = kCAFillModeForwards; CABasicAnimation *backAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; backAnimation.toValue = [NSNumber numberWithFloat:0]; backAnimation.duration = 0.2; backAnimation.beginTime = 0.6; backAnimation.removedOnCompletion = NO; backAnimation.fillMode = kCAFillModeForwards; CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; animationGroup.animations = @[displacementYAnimation,startAnimation,backCenterAnimation,endAnimation,backAnimation]; animationGroup.duration = 0.8; animationGroup.repeatCount = 8; [_babyImage.layer addAnimation:animationGroup forKey:@"rotationAnimationZ"]; } - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{ if (motion == UIEventSubtypeMotionShake) { [self startShowAnimation]; } }
相关文章推荐
- iOS获取相册中所有图片
- 最全动画系列教程-登录动画效果
- iOS 知识基础
- iOS webview 加载html 乱码 需要UTF8转码
- iOS 中简单的获取精准本地时间的方法
- XZ_iOS之判断输入的是不是银行卡号
- iOS 图片显示格式:
- iOS图层layer
- XZ_iOS之实现textField限制只能输入数字,无论是第三方键盘还是自带键盘
- 27个iOS开源库,让你的开发坐上火箭吧
- XZ_iOS之使用KVO实现textField在填写完数据时,button可点击且变颜色
- iOS中 视频直播功能-流媒体的使用
- XZ_iOS之使用textView实现占位文字
- iOS10 权限崩溃问题
- ios判断是否有权限访问相机,相册,定位
- BGRA转灰度数据
- iOS音频篇:AVPlayer的缓存实现
- iOS 狂霸酷炫拽之Button动效
- XZ_iOS之使用GCD实现发送验证码
- iOS国际化