• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
那一季&花开
博客园    首页    新随笔    联系   管理    订阅  订阅

CoreAnimation-06-CAKeyframeAnimation 相关代码

 

    • - (void)awakeFromNib{    

          iMV = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

          iMV.image = [UIImage imageNamed:@"c"];

          [self addSubview:iMV];

          NSLog(@"%@",NSStringFromCGRect([[self.subviews firstObject] layer].bounds));

      }

    • 使用成员属性保存贝瑟尔路径
    @property (nonatomic, strong) UIBezierPath *path;
    • 监听触摸事件的状态,绘制贝瑟尔曲线

      • 开始
      //确定起点
      - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
      {
      	//获取当前触摸点
      	UITouch *touch = [touches anyObject];
      	CGPoint curretnPoint = [touch locationInView:self];
      
      	//创建路径
      	UIBezierPath *path = [UIBezierPath bezierPath];
      	[path moveToPoint:curretnPoint];
      	//保存路径
      	self.path = path;
      }
      • 移动
      //添加线条
      - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
      {
      	//获取当前触摸点
      	UITouch *touch = [touches anyObject];
      	CGPoint currentPoint = [touch locationInView:self];
      	//添加线条
      	[self.path addLineToPoint:currentPoint];
      	//重绘,将曲线显示到图层上
      	[self setNeedsDisplay];
      }
      • 结束(创建动画)
      - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
      {
      	//创建动画
      	CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
      
      	//指定执行动画的属性,
      	animation.keyPath = @"position";
      	//设置动画的执行路径
      	animation.path = self.path.CGPath;
      
      	//设置动画的执行时间
      	animation.duration = 1;
      	//设置动画的重复次数
      	animation.repeatCount = MAXFLOAT;
      
      	//将动画添加到对应的图层上
      	[[[self.subviews firstObject] layer] addAnimation:animation forKey:nil];
      }
    • 将路径显示到图层上

    //绘制路径
    - (void)drawRect:(CGRect)rect
    {
    	[self.path stroke];
    }
 
 
posted @ 2015-08-31 09:57  那一季&花开  阅读(125)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3