UIView(UIViewAnimation)

UIView可以设置动画的属性:
frame 视图的尺寸和位置
bounds 视图的尺寸
center 视图的位置
transform 翻转或者缩放视图
alpha 视图的透明度
backgroundColor 视图的背景颜色
contentStretch 视图内容如何拉伸

  1. 开始动画
    参数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;
  2. 结束动画
    + (void)commitAnimations;
    所有动画设置方法,都是beginAnimations开始commitAnimations结束的动画,在动画外面和代码块设置的动画无效。
  3. 设置动画消息代理
    + (void)setAnimationDelegate:(id)delegate;
  4. 设置接收代理消息的对象。动画将要开始时调用
    + (void)setAnimationWillStartSelector:(SEL)selector;
  5. 设置接收代理消息的对象。动画已经停止时调用
    + (void)setAnimationDidStopSelector:(SEL)selector;
  6. 设置动画持续时间。默认0.2
    + (void)setAnimationDuration:(NSTimeInterval)duration;
  7. 设置动画延迟时间。默认0.0
    + (void)setAnimationDelay:(NSTimeInterval)delay;
  8. 设置动画开始时间。默认是now
    + (void)setAnimationStartDate:(NSDate *)startDate;
  9. 设置动画变化曲线。默认是淡入淡出
    + (void)setAnimationCurve:(UIViewAnimationCurve)curve;
    变化曲线的效果:
    typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
    UIViewAnimationCurveEaseInOut, //淡入淡出
    UIViewAnimationCurveEaseIn, //开始慢
    UIViewAnimationCurveEaseOut, //结束慢
    UIViewAnimationCurveLinear //线性的
    };
  10. 设置动画重复次数。默认是0.0,可以是小数
    + (void)setAnimationRepeatCount:(float)repeatCount;
  11. 设置动画是否自动重复播放
    参数repeatAutoreverses,如果动画自动重复就是YES否则NO。默认是NO
    使用setAnimationRepeatCount:方法来指定动画重复次数。如果重复次数为0将没有任何效果。
    + (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses;
  12. 设置动画从当前状态开始播放。
    参数fromCurrentState,如果动画需要从他们当前状态开始播放是YES。否则为NO。默认是NO
    如果设置为YES那么当动画在运行过程中,当前视图的位置将会作为新的动画的开始状态。如果设置为NO,当前动画结束前新动画将使用视图最后状态的位置作为开始状态。
    + (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState;
  13. 设置动画类型
    参数transition,把一个过渡效果应用到视图中。
    参数view,需要过渡的视图对象。
    参数cache,如果是YES,那么在开始和结束图片视图渲染一次并在动画中创建帧,否则视图将会在每一帧都渲染。例如缓存,你不需要在视图转变中不停的更新,你只需要等到转换完成再去更新视图。
    + (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache;
    动画效果:
    typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {
    UIViewAnimationTransitionNone, 没有动画效果
    UIViewAnimationTransitionFlipFromLeft, 从左向右旋转翻页
    UIViewAnimationTransitionFlipFromRight, 从右向左旋转翻页
    UIViewAnimationTransitionCurlUp, 卷曲翻页,从下往上
    UIViewAnimationTransitionCurlDown, 卷曲翻页,从上往下
    };
  14. 设置是否激活动画
    参数enabled,如果是YES那就激活动画,否则NO。默认是YES
    + (void)setAnimationsEnabled:(BOOL)enabled;
  15. 返回一个布尔值表示动画是否结束。如果动画结束返回YES,否则NO
    + (BOOL)areAnimationsEnabled;
  16. 可以强制一些动作不使用动画
    它是一个简单的封装,先检查动画当前是否启用,然后禁止动画,执行块语句,最后重新启用动画。一个需要说明的地方是,它并不会阻塞基于CoreAnimation的动画。iOS7的新方法
    + (void)performWithoutAnimation:(void (^)(void))actionsWithoutAnimation NS_AVAILABLE_IOS(7_0);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容