1. UIView类方法动画
/**
标志动画开始,开始编辑动画
@param animationID 动画的唯一标示
@param context 附加参数
*/
+ (void)beginAnimations:(nullable NSString *)animationID
context:(nullable void *)context;
/**
标志动画结束,开始执行动画
*/
+ (void)commitAnimations;
/**
设置动画时长
@param duration duration description
*/
+ (void)setAnimationDuration:(NSTimeInterval)duration;
/**
设置代理
@param delegate delegate description
*/
+ (void)setAnimationDelegate:(nullable id)delegate;
/**
动画将要开始时执行的方法
@param selector selector description
*/
+ (void)setAnimationWillStartSelector:(nullable SEL)selector;
/**
动画已经结束时执行的方法
@param selector selector description
*/
+ (void)setAnimationDidStopSelector:(nullable SEL)selector;
/**
设置动画执行延时时间
@param delay delay description
*/
+ (void)setAnimationDelay:(NSTimeInterval)delay;
/**
设置动画开始的Date
@param startDate startDate description
*/
+ (void)setAnimationStartDate:(NSDate *)startDate;
/**
设置动画效果
@param curve curve description
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurveEaseInOut, // 慢入慢出
UIViewAnimationCurveEaseIn, // 慢入
UIViewAnimationCurveEaseOut, // 慢出
UIViewAnimationCurveLinear, // 线性匀速
};
*/
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve;
/**
动画重复次数
@param repeatCount repeatCount description
*/
+ (void)setAnimationRepeatCount:(float)repeatCount;
/**
设置动画是否继续执行反相动画
@param repeatAutoreverses repeatAutoreverses description
*/
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;
/**
设置是否从当前状态开始动画
@param fromCurrentState fromCurrentState description
当一个动画尚未完成,将要进行下一个动画时:
如果设置为YES,动画将从上一个动画当前的状态进行下一个动画
如果设置为NO,那当前动画会立即结束,达到当前动画的最终状态,再执行下一个动画
*/
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState;
/**
设置试图过渡效果
@param transition 动画效果
@param view 添加动画效果的View
@param cache 是否使用视图缓存,YES:视图在开始和结束时渲染一次;NO:视图在每一帧都渲染
typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone, // 不使用动画
UIViewAnimationTransitionFlipFromLeft, // 从左向右旋转翻页
UIViewAnimationTransitionFlipFromRight, // 从右向左旋转翻页
UIViewAnimationTransitionCurlUp, // 从下往上卷曲翻页
UIViewAnimationTransitionCurlDown, // 从上往下卷曲翻页
};
*/
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition
forView:(UIView *)view
cache:(BOOL)cache;
/**
是否禁用动画效果(对象的属性会被改变,只是没有动画效果)
@param enabled enabled description
*/
+ (void)setAnimationsEnabled:(BOOL)enabled;
2. UIView block动画
/**
简单的动画方法
@param duration 动画时长
@param animations 需要执行的动画block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations;
/**
带有完成回调的动画方法
@param duration 动画时长
@param animations 需要执行的动画block
@param completion 动画完成后需要执行的block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion;
/**
带有延时和可选择动画效果的动画方法
@param duration 动画时长
@param delay 延时时长
@param options 动画效果(枚举类型值,具体效果参考系统系统枚举)
@param animations 需要执行的动画block
@param completion 动画完成后需要执行的block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
options:(UIViewAnimationOptions)options
animations:(void (^)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion;
/**
spring动画方法
@param duration 动画时长
@param delay 延时时长
@param dampingRatio 震动效果,范围0~1,数值越小震动效果越明显
@param velocity 初始速度,数值越大初始速度越快
@param options 动画效果(枚举类型值,具体效果参考系统系统枚举)
@param animations 需要执行的动画block
@param completion 动画完成后需要执行的block
*/
+ (void)animateWithDuration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
usingSpringWithDamping:(CGFloat)dampingRatio
initialSpringVelocity:(CGFloat)velocity
options:(UIViewAnimationOptions)options
animations:(void (^)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion;
/**
两个视图切换的转场动画方法
@param fromView fromView description
@param toView toView description
@param duration 动画时长
@param options 动画效果(枚举类型值,具体效果参考系统系统枚举)
@param completion 动画完成后需要执行的block
在该动画过程中,fromView 会从父视图中移除,并讲 toView 添加到父视图中,
注意转场动画的作用对象是父视图。
*/
+ (void)transitionFromView:(UIView *)fromView
toView:(UIView *)toView
duration:(NSTimeInterval)duration
options:(UIViewAnimationOptions)options
completion:(void (^ __nullable)(BOOL finished))completion;
/**
单个视图转场效果动画方法
@param view view description
@param duration 动画时长
@param options 动画效果(枚举类型值,具体效果参考系统系统枚举)
@param animations 需要执行的动画block
@param completion 动画完成后需要执行的block
*/
+ (void)transitionWithView:(UIView *)view
duration:(NSTimeInterval)duration
options:(UIViewAnimationOptions)options
animations:(void (^ __nullable)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion;
/**
关键帧(keyFrame)动画
@param duration 动画时长
@param delay 延时时长
@param options 动画效果(枚举类型值,具体效果参考系统系统枚举)
@param animations 需要执行的动画block
@param completion 动画完成后需要执行的block
*/
+ (void)animateKeyframesWithDuration:(NSTimeInterval)duration
delay:(NSTimeInterval)delay
options:(UIViewKeyframeAnimationOptions)options
animations:(void (^)(void))animations
completion:(void (^ __nullable)(BOOL finished))completion;
//其中需要注意的是添加关键帧的方法:
/**
添加关键帧的方法
@param frameStartTime 动画开始的时间(数值为占总时间的比例)
@param frameDuration 动画持续时间(数值为占总时间的比例)
@param animations 需要执行的动画block
*/
+ (void)addKeyframeWithRelativeStartTime:(double)frameStartTime
relativeDuration:(double)frameDuration
animations:(void (^)(void))animations;
3. 关于options参数
3.1 UIViewAnimationOptions
UIViewAnimationOptionLayoutSubviews //进行动画时布局子控件
UIViewAnimationOptionAllowUserInteraction //进行动画时允许用户交互
UIViewAnimationOptionBeginFromCurrentState //从当前状态开始动画
UIViewAnimationOptionRepeat //无限重复执行动画
UIViewAnimationOptionAutoreverse //执行动画回路
UIViewAnimationOptionOverrideInheritedDuration //忽略嵌套动画的执行时间设置
UIViewAnimationOptionOverrideInheritedCurve //忽略嵌套动画的曲线设置
UIViewAnimationOptionAllowAnimatedContent //转场:进行动画时重绘视图
UIViewAnimationOptionShowHideTransitionViews //转场:移除(添加和移除图层的)动画效果
UIViewAnimationOptionOverrideInheritedOptions //不继承父动画设置
UIViewAnimationOptionCurveEaseInOut //时间曲线,慢进慢出(默认值)
UIViewAnimationOptionCurveEaseIn //时间曲线,慢进
UIViewAnimationOptionCurveEaseOut //时间曲线,慢出
UIViewAnimationOptionCurveLinear //时间曲线,匀速
UIViewAnimationOptionTransitionNone //转场,不使用动画
UIViewAnimationOptionTransitionFlipFromLeft //转场,从左向右旋转翻页
UIViewAnimationOptionTransitionFlipFromRight //转场,从右向左旋转翻页
UIViewAnimationOptionTransitionCurlUp //转场,下往上卷曲翻页
UIViewAnimationOptionTransitionCurlDown //转场,从上往下卷曲翻页
UIViewAnimationOptionTransitionCrossDissolve //转场,交叉消失和出现
UIViewAnimationOptionTransitionFlipFromTop //转场,从上向下旋转翻页
UIViewAnimationOptionTransitionFlipFromBottom //转场,从下向上旋转翻页
3.2 UIViewKeyframeAnimationOptions
UIViewKeyframeAnimationOptionLayoutSubviews //进行动画时布局子控件
UIViewKeyframeAnimationOptionAllowUserInteraction //进行动画时允许用户交互
UIViewKeyframeAnimationOptionBeginFromCurrentState //从当前状态开始动画
UIViewKeyframeAnimationOptionRepeat //无限重复执行动画
UIViewKeyframeAnimationOptionAutoreverse //执行动画回路
UIViewKeyframeAnimationOptionOverrideInheritedDuration //忽略嵌套动画的执行时间设置
UIViewKeyframeAnimationOptionOverrideInheritedOptions //不继承父动画设置
UIViewKeyframeAnimationOptionCalculationModeLinear //运算模式 :连续
UIViewKeyframeAnimationOptionCalculationModeDiscrete //运算模式 :离散
UIViewKeyframeAnimationOptionCalculationModePaced //运算模式 :均匀执行
UIViewKeyframeAnimationOptionCalculationModeCubic //运算模式 :平滑
UIViewKeyframeAnimationOptionCalculationModeCubicPaced //运算模式 :平滑均匀
网友评论