uiview 动画旋转rolata
来源:互联网 发布:淘宝水果模特 编辑:程序博客网 时间:2024/04/29 18:14
实现一个图片的旋转有很多种方法 ,可以直接使用uiview transform 进行旋转 rotation ,但是要注意的 是 你要实现360 旋转 至少要设置4帧 也就是 至少每一次动画要旋转90度,
建议使用方法 是
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewKeyframeAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion NS_AVAILABLE_IOS(7_0);
duration : 动画的时间
delay:延迟多久执行
option :设置一些操作选项
1.常规动画属性设置(可以同时选择多个进行设置)
UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动。
UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互。
UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行。
UIViewAnimationOptionRepeat:重复运行动画。
UIViewAnimationOptionAutoreverse :动画运行到结束点后仍然以动画方式回到初始点。
UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套动画时间设置。
UIViewAnimationOptionOverrideInheritedCurve:忽略嵌套动画速度设置。
UIViewAnimationOptionAllowAnimatedContent:动画过程中重绘视图(注意仅仅适用于转场动画)。
UIViewAnimationOptionShowHideTransitionViews:视图切换时直接隐藏旧视图、显示新视图,而不是将旧视图从父视图移除(仅仅适用于转场动画)
UIViewAnimationOptionOverrideInheritedOptions :不继承父动画设置或动画类型。
2.动画速度控制(可从其中选择一个设置)
UIViewAnimationOptionCurveEaseInOut:动画先缓慢,然后逐渐加速。
UIViewAnimationOptionCurveEaseIn :动画逐渐变慢。
UIViewAnimationOptionCurveEaseOut:动画逐渐加速。
UIViewAnimationOptionCurveLinear :动画匀速执行,默认值
目前用到的这些 当然 如果你要 用这个方法 做转场的话 还有转场效果。
animation:就是 放入 你要执行的动画操作 这里我们要放入的旋转操作
[UIViewanimateKeyframesWithDuration:10.0delay:0options:UIViewAnimationCurveLinearanimations:^{
[UIViewaddKeyframeWithRelativeStartTime:0.0relativeDuration:0.1animations:^{
imageView.frame =CGRectMake(100,100,80, 100);
}];
//startTime 为起始时间 duration 为持续时间 都是按总时间百分百计算的 下面就应该是开始在 1秒 持续 2秒
[UIViewaddKeyframeWithRelativeStartTime:0.1relativeDuration:0.2animations:^{
imageView.transform =CGAffineTransformMakeRotation(0.5*M_PI);
}];
[UIViewaddKeyframeWithRelativeStartTime:0.3relativeDuration:0.2animations:^{
imageView.transform =CGAffineTransformMakeRotation(1*M_PI);
}];
[UIViewaddKeyframeWithRelativeStartTime:0.5relativeDuration:0.4animations:^{
imageView.transform =CGAffineTransformMakeRotation(1.5*M_PI);
}];
[UIViewaddKeyframeWithRelativeStartTime:0.9relativeDuration:0.1animations:^{
imageView.transform =CGAffineTransformMakeRotation(2*M_PI);
}];
}completion:^(BOOL finish){
}];
说一说第二种方法
就是设置 uiview的layer
使用基础动画
CABasicAnimation *rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumbernumberWithFloat:M_PI*2.0];
rotationAnimation.duration = 1;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = 1;
[_layeraddAnimation:rotationAnimationforKey:@"rotationAnimation"];
目前就是这两种 还有很多 方法 持续更新
- uiview 动画旋转rolata
- uiview 永久旋转动画
- UIView旋转动画
- 旋转动画 uiview animation rotate
- 旋转动画 uiview animation rotate
- UIView无限旋转动画的实现
- UIView无限旋转动画的实现
- UIView 旋转
- UIView动画
- UIView 动画
- UIView动画
- uiview动画
- UIView动画
- UIView 动画
- UIView动画
- 动画 UIView
- UIView动画
- UIView动画
- STL 之adjacent_find, merge,inplace_merge
- 使用QQ账号,新浪微博账号登录第三方应用
- 开幕式,闭幕式
- WWDC2014之App Extensions学习笔记
- STL 之search,search_n,sort,binary_search
- uiview 动画旋转rolata
- STL 之swap, iter_swap, swap_ranges
- java.lang.OutOfMemoryError
- Oracle学习笔记(12)------------集合、序列
- Android学习笔记--文件存储数据
- Win7下安装HBase
- You need to use a Theme.AppCompat theme (or descendant) with this activity.
- 字符消除
- STL 之replace,replace_if,replace_copy,replace_copy_if