UIView可以设置动画的属性:
frame 视图的尺寸和位置
bounds 视图的尺寸
center 视图的位置
transform 翻转或者缩放视图
alpha 视图的透明度
backgroundColor 视图的背景颜色
contentStretch 视图内容如何拉伸
- 开始动画
参数animationID,动画内部应用程序标识用来传递给动画代理消息。
参数context,附加的应用程序信息用来传递给动画代理消息。
调用setAnimationWillStartSelector:来使用。
写个方法包含这两参数,在方法里就可以使用设置的两参数了。
- (void)animationWillStart:(NSString *)animationID context:(void *)context
调用setAnimationDidStopSelector:来使用,三个参数。
- (void)animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context
+ (void)beginAnimations:(NSString *)animationID context:(void *)context; - 结束动画
+ (void)commitAnimations;
所有动画设置方法,都是beginAnimations开始commitAnimations结束的动画,在动画外面和代码块设置的动画无效。 - 设置动画消息代理
+ (void)setAnimationDelegate:(id)delegate; - 设置接收代理消息的对象。动画将要开始时调用
+ (void)setAnimationWillStartSelector:(SEL)selector; - 设置接收代理消息的对象。动画已经停止时调用
+ (void)setAnimationDidStopSelector:(SEL)selector; - 设置动画持续时间。默认
0.2秒
+ (void)setAnimationDuration:(NSTimeInterval)duration; - 设置动画延迟时间。默认
0.0秒
+ (void)setAnimationDelay:(NSTimeInterval)delay; - 设置动画开始时间。默认是
now
+ (void)setAnimationStartDate:(NSDate *)startDate; - 设置动画变化曲线。默认是淡入淡出
+ (void)setAnimationCurve:(UIViewAnimationCurve)curve;
变化曲线的效果:
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurveEaseInOut, //淡入淡出
UIViewAnimationCurveEaseIn, //开始慢
UIViewAnimationCurveEaseOut, //结束慢
UIViewAnimationCurveLinear //线性的
}; - 设置动画重复次数。默认是
0.0,可以是小数
+ (void)setAnimationRepeatCount:(float)repeatCount; - 设置动画是否自动重复播放
参数repeatAutoreverses,如果动画自动重复就是YES否则NO。默认是NO
使用setAnimationRepeatCount:方法来指定动画重复次数。如果重复次数为0将没有任何效果。
+ (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses; - 设置动画从当前状态开始播放。
参数fromCurrentState,如果动画需要从他们当前状态开始播放是YES。否则为NO。默认是NO
如果设置为YES那么当动画在运行过程中,当前视图的位置将会作为新的动画的开始状态。如果设置为NO,当前动画结束前新动画将使用视图最后状态的位置作为开始状态。
+ (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState; - 设置动画类型
参数transition,把一个过渡效果应用到视图中。
参数view,需要过渡的视图对象。
参数cache,如果是YES,那么在开始和结束图片视图渲染一次并在动画中创建帧,否则视图将会在每一帧都渲染。例如缓存,你不需要在视图转变中不停的更新,你只需要等到转换完成再去更新视图。
+ (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache;
动画效果:
typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
UIViewAnimationTransitionNone, 没有动画效果
UIViewAnimationTransitionFlipFromLeft, 从左向右旋转翻页
UIViewAnimationTransitionFlipFromRight, 从右向左旋转翻页
UIViewAnimationTransitionCurlUp, 卷曲翻页,从下往上
UIViewAnimationTransitionCurlDown, 卷曲翻页,从上往下
}; - 设置是否激活动画
参数enabled,如果是YES那就激活动画,否则NO。默认是YES
+ (void)setAnimationsEnabled:(BOOL)enabled; - 返回一个布尔值表示动画是否结束。如果动画结束返回
YES,否则NO。
+ (BOOL)areAnimationsEnabled; - 可以强制一些动作不使用动画
它是一个简单的封装,先检查动画当前是否启用,然后禁止动画,执行块语句,最后重新启用动画。一个需要说明的地方是,它并不会阻塞基于CoreAnimation的动画。iOS7的新方法
+ (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation NS_AVAILABLE_IOS(7_0);







网友评论