iOS CALayer 抖动效果
2015-06-25 11:54
579 查看
方式一
方式二
- (void)shakeAnimationForView:(UIView *)view { CALayer *layer = [view layer]; CAKeyframeAnimation *animation = [CAKeyframeAnimation animation]; animation.keyPath = @"position.x"; animation.values = @[ @0, @5, @10, @-10, @10, @5, @0 ]; animation.keyTimes = @[ @0, @(1 / 6.0),@(2 / 6.0), @(3 / 6.0), @(5 / 6.0),@(2 / 6.0), @1 ]; animation.duration = 0.4; animation.additive = YES; [layer addAnimation:animation forKey:@"shake"]; }
方式二
- (void)shakeAnimationForView:(UIView *) view { //获取到当前View的layer CALayer *viewLayer = view.layer; //获取当前View的位置 CGPoint position = viewLayer.position; //移动的两个终点位置 CGFloat scale = 5.0f; CGPoint beginPosition = CGPointMake(position.x + scale, position.y); CGPoint endPosition = CGPointMake(position.x - scale, position.y); //设置动画 CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"]; //设置运动形式 [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; //设置开始位置 [animation setFromValue:[NSValue valueWithCGPoint:beginPosition]]; //设置结束位置 [animation setToValue:[NSValue valueWithCGPoint:endPosition]]; //设置自动反转 [animation setAutoreverses:YES]; //设置时间 [animation setDuration:0.1]; //设置次数 [animation setRepeatCount:3]; //添加上动画 [viewLayer addAnimation:animation forKey:nil]; }
相关文章推荐
- iOS 开发消息推送(APNS)
- iOS下的RSA加密方法
- iOS百度地图辅助配置文档
- ios开发中常用小技巧
- IOS中的XML解析之DOM和SAX
- 在IOS开发中使用定位
- iOS——Xcode上的Other linker flags
- 关于iOS Push总结
- iOS 图片的属性
- iOS开发中KVO & KVC的使用
- iOS在线播放--影音播放的两个方式
- iOS_开发中遇到的那些问题_1
- DTCoreText 要点记录
- [Jenkins] Jenkins配置IOS持续环境,构建出现IDEArchivePathOverride问题!
- iOS#define和static const
- iOS 常见小问题
- iOS学习笔记—视2图上移与键盘弹回
- iOS 开发数据存储之magic record
- iOSMVVM(Model-View(View/ViewController) -ViewModel ) 设计模式
- ios通知中心