iOS中UIView动画
1、UIView动画
animateWithDuration: animations:,该方法执行一个动画duration是执行所需时间,第二个是一个block,就是要执行的动画是什么,比如平移、缩放、改变透明度等待。
animateWithDuration: animations:completion:,该方法相比上一个方法是多了一个动画完成后执行block,在动画结束之后可以做一些事情。
animateWithDuration: delay: options:animations:completion:,这个方法有多了两个参数,delay是延迟多长时间再开始执行动画,options是动画类型,是一个枚举:
UIViewAnimationOptionLayoutSubviews:子控件将和父控件一同执行动画UIViewAnimationOptionAllowUserInteraction:在动画过程中允许用户交互 UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行 UIViewAnimationOptionRepeat:重复运行动画
UIViewAnimationOptionAutoreverse :动画执行完之后回到初始的位置UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套动画时间设置UIViewAnimationOptionOverrideInheritedCurve:忽略嵌套动画速度设置UIViewAnimationOptionAllowAnimatedContent:动画过程中重绘视图(适用于转场动画) UIViewAnimationOptionShowHideTransitionViews:用现实隐藏的切换方式代替删除视图
UIViewAnimationOptionOverrideInheritedOptions :不继承父动画设置或动画类型UIViewAnimationOptionCurveEaseInOut:动画又慢到快执
UIViewAnimationOptionCurveEaseIn :动画逐渐减速
UIViewAnimationOptionCurveEaseOut:动画逐渐加速
UIViewAnimationOptionTransitionNone:没有转场动画效果 UIViewAnimationOptionTransitionFlipFromLeft :从左侧翻转效果 UIViewAnimationOptionTransitionFlipFromRight:从右侧翻转效果 UIViewAnimationOptionTransitionCurlUp:向后翻页的动画过渡效果 UIViewAnimationOptionTransitionCurlDown :向前翻页的动画过渡效果 UIViewAnimationOptionTransitionCrossDissolve:旧视图溶解消失显示下一个新视图的效果UIViewAnimationOptionTransitionFlipFromTop :从上方翻转效果 UIViewAnimationOptionTransitionFlipFromBottom:从底部翻转效果
2、UIView关键帧动画animateKeyframesWithDuration: delay: options: animations:参数1动画执行时间,参数2动画延迟执行时间,参数3动画类型,参数4动画执行内容
需要要配合addKeyframeWithRelativeStartTime: relativeDuration: animations:使用,参数1是从什么时间开始(在上面总时间内),参数二是执行动画时长,其中选项类型前面和上面动画等效,下面多了五种:
UIViewKeyframeAnimationOptionCalculationModeLinear //选择使用一个简单的线性插值计算的时候关键帧之间的值
UIViewKeyframeAnimationOptionCalculationModeDiscrete //选择不插入关键帧之间的值,而是直接跳到每个新的关键帧的值
UIViewKeyframeAnimationOptionCalculationModePaced //选择计算中间帧数值算法使用一个简单的节奏。这个选项的结果在一个均匀的动画
UIViewKeyframeAnimationOptionCalculationModeCubic //选择计算中间帧使用默认卡特莫尔罗花键,通过关键帧的值。你不能调整该算法的参数。 这个动画好像会更圆滑一些
UIViewKeyframeAnimationOptionCalculationModeCubicPaced //选择计算中间帧使用立方计划而忽略的时间属性动画。相反,时间参数计算隐式地给动画一个恒定的速度
3、CGAffineTransform配合UIView动画能实现更多的效果
CGAffineTransformMakeTranslation实现以初始位置为基准,在x轴方向上平移x单位,在y轴方向上平移y单位
CGAffineTransformMakeScale实现以初始位置为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍
CGAffineTransformMakeRotation实现以初始位置为基准,将坐标系统逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度)