简介
UIView动画实质上是对CoreAnimation的封装,提供简洁的动画接口。
UIView动画可以设置的动画属性有:
- frame(大小变化)
- bounds(拉伸变化)
- center(中心位置)
- transform(旋转平移等)
- alpha(透明度)
- backgroundColor(背景颜色)
- contentStretch(拉伸内容)
一.UIView类方法动画:分类UIView(UIViewAnimation)
1.1开始和结束
+ (void)beginAnimations:(NSString *)animationID context:(void *)context;//开始
- animationID:动画标识
- context:附加参数,在设置了代理的情况下,此参数将发送到
setAnimationWillStartSelector
和setAnimationDidStopSelector
所指定的方法。
大部分情况下设置为nil即可。
+ (void)commitAnimations;//结束
1.2参数设置
+ (void)setAnimationDelegate:(nullable id)delegate;
设置代理,默认nil+ (void)setAnimationWillStartSelector:(nullable SEL)selector;
设置动画即将开始时代理对象执行的方法,默认null+ (void)setAnimationDidStopSelector:(nullable SEL)selector;
设置动画已经结束时代理对象执行的方法,默认null+ (void)setAnimationDuration:(NSTimeInterval)duration;
设置动画持续时间,默认0.2+ (void)setAnimationDelay:(NSTimeInterval)delay;
设置动画延迟时间,默认0.0+ (void)setAnimationStartDate:(NSDate *)startDate;
设置动画开始日期,默认现在([NSDate date])-
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve;
设置动画曲线,默认UIViewAnimationCurveEaseInOut- UIViewAnimationCurveEaseInOut, //慢进慢出
- UIViewAnimationCurveEaseIn, // 慢进
- UIViewAnimationCurveEaseOut, // 慢出
- UIViewAnimationCurveLinear, //匀速
+ (void)setAnimationRepeatCount:(float)repeatCount;
设置动画重复次数,默认0.0+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;
设置动画是否执行相反的动画,默认不+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState;
设置是否从当前状态开始动画,默认不。如果上一个动画正在播放,且尚未播放完毕,我们将要进行一个新的动画:当为YES时:动画将从上一个动画所在的状态开始播放。当为NO时:动画将从上一个动画所指定的最终状态开始播放(此时上一个动画马上结束)-
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache;
设置动画过渡效果。
transition:- UIViewAnimationTransitionNone,
- UIViewAnimationTransitionFlipFromLeft, //从左向右旋转翻页
- UIViewAnimationTransitionFlipFromRight, //从右向左
- UIViewAnimationTransitionCurlUp, //从下往上卷曲翻页
- UIViewAnimationTransitionCurlDown, //从上往下
view:需要过渡效果的view
cache:是否使用视图缓存。YES:视图在开始和结束时渲染一次;NO:视图在每一帧都渲染
+ (void)setAnimationsEnabled:(BOOL)enabled;
设置是否禁用动画效果,// ignore any attribute changes while set.+ (BOOL)areAnimationsEnabled;
+ (NSTimeInterval)inheritedAnimationDuration;