zoukankan      html  css  js  c++  java
  • CATransition转场动画

    CATransition转场动画概述


    • 简介

      • CATransition又称转场动画,是CAAnimation的子类,可以直接使用
      • 转场动画主要用于为图层提供移入/移出屏幕的动画效果
      • 转场动画常见的应用是UINavigationController
    • 注意事项

      • 转场动画的默认过渡方式为淡出方式(kCATransitionFade)
      • 可以使用常量形式或字符串形式给转场动画的type属性赋值,如

        • kCATransitionPush,常量形式
        • @"push",字符串形式
      • 官方文档中只提供了四种转场动画过渡方式的常量,如图

      • 动画的终点值必须大于等于起点值,否则没有动画效果

    转场动画常用的属性


    • type(NSString *),动画的过渡方式
    • subtype(NSString *),动画的过渡方向
    • startProgress(float),动画起点,取值范围为0~1,表示在整个动画中的比例
    • endProgress(float)动画终点,取值范围为0~1,表示在整个动画中的比例

    转场动画的过渡方式


    • fade

      • 交叉淡化过渡
      • 不支持过渡方向
      • 对应的常量为kCATransitionFade
    • push

      • 新视图把旧视图推出去
      • 对应的常量为kCATransitionPush
    • moveIn

      • 新视图移到旧视图上面
      • 对应的常量为kCATransitionMoveIn
    • reveal

      • 将旧视图移开显示下边的新视图
      • 对应的常量为kCATransitionReveal
    • cube

      • 立方体反转效果
    • oglFlip

      • 上下左右反转效果
    • suckEffect

      • 收缩效果,如一块布被抽走
      • 不支持过渡方向
    • rippleEffect

      • 滴水效果
      • 不支持过渡方向
    • pageCurl

      • 向上翻页效果
    • pageUnCurl

      • 向下翻页效果
    • cameraIrisHollowOpen

      • 相机镜头打开效果
      • 不支持过渡方向
    • cameraIrisHollowClose

      • 相机镜头关闭效果
      • 不支持过渡方向

    转场动画的过渡方向


    • kCATransitionFromRight,右
    • kCATransitionFromLeft,左
    • kCATransitionFromTop,上
    • kCATransitionFromBottom,下

    示例


    • 效果图

    • 实现步骤

      • 通过storyboard创建UIImageView控件,并拥有它
      @property (weak, nonatomic) IBOutlet UIImageView *imageView;
      • 更改imageView的image属性
      //点击屏幕时,更换图片
      - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
      {
      	//控制图片循环展示
      	static NSInteger i = 2;
      	if (i == 4)
      	{
          	i = 1;
      	}
      
      	//更换图片
      	NSString *imageName = [NSString stringWithFormat:@"%zd", i];
      	self.imageView.image = [UIImage imageNamed:imageName];
      	i++;
      
      	//添加动画
      	[self setupTransition];
      }
      • 实现转场动画代码
      - (void)setupTransition
      {
      	CATransition *animation = [CATransition animation];
      
      	//设置动画的过渡方式
      	animation.type = @"oglFlip";
      	//设置动画的过渡方向
      	animation.subtype = kCATransitionFromRight;
      	//设置动画时长
      	animation.duration = 0.5;
      
      	//将动画添加到图层上
      	[self.imageView.layer addAnimation:animation forKey:nil];
      }
  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/yxt9322yxt/p/4781291.html
Copyright © 2011-2022 走看看