麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

CoreAnimation-06-CAKeyframeAnimation

2019-11-14 18:25:29
字體:
來源:轉載
供稿:網友

概述


  • 簡介

    • CAKeyframeAnimation又稱關鍵幀動畫
    • CAKeyframeAnimation是抽象類CAPRopertyAnimation的子類,可以直接使用
    • 通過values與path兩個屬性指定動畫屬性
  • 注意事項

    • 若指定了path屬性,則values屬性將被忽略
    • CABasicAnimation相當于只有兩個關鍵幀的CAKeyframeAnimation

關鍵幀動畫的常用屬性


  • values(NSArray *)

    • 存放關鍵幀的多個值
    • 類似于CABasicAnimation的fromValue與toValue值
  • path(CGPathRef)

    • 動畫的執行路徑
    • 可以通過繪圖的方式繪制路徑
  • keyTimes(NSArray *)

    • 每個關鍵幀的執行時間
    • 類型為NSNumber類型
    • 若不指定,則所有的關鍵幀平分動畫的duration時長
  • timingFunctions(NSArray *)

    • 速度控制函數數組
  • calculationMode(NSString *)

    • 指定關鍵幀的動畫屬性
    • 若指定該值,則keyTimes與timingFunctions屬性值將被忽略
    • 默認為:kCAAnimationLinear
  • rotationMode(NSString *)

    • 指定旋轉模式,默認為nil

示例


  • 效果圖

  • 實現思路

    • 通過監聽執行動畫的UI控件的觸摸事件來繪制貝瑟爾曲線
    • 創建關鍵幀動畫,指定執行動畫的keyPath屬性
    • 將繪制的貝瑟爾曲線作為動畫的執行路徑
    • 將動畫添加到指定的圖層上
  • 實現步驟(自定義UIView的子類)

    • 使用成員屬性保存貝瑟爾路徑
    @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];}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久探花| 欧美成人se01短视频在线看 | 亚洲第一页夜 | 性爱视频在线免费 | 精品国产一区二区三区天美传媒 | 中文字幕在线观看精品 | 免费看一级视频 | 国产精品欧美久久久久一区二区 | 逼特逼视频在线观看 | 欧美日韩一区,二区,三区,久久精品 | 91网视频在线观看 | 久色婷婷| 国产精品久久久久久久久久大牛 | 国产午夜精品一区二区三区免费 | 黄色电影免费提供 | 欧洲色阁中文字幕 | 久久999久久 | 国产在线导航 | 特片网久久| 免费的性生活视频 | 看毛片电影 | 久久久亚洲欧美综合 | 免费观看一区二区三区视频 | 国产88久久久国产精品免费二区 | 一区国产在线 | 国产精品免费大片 | www.com超碰 | 成人精品一区二区三区中文字幕 | 九九精品免费 | 91社影院在线观看 | 操毛片 | 九九热免费精品 | 欧美日韩色片 | 国产精品免费小视频 | 亚洲精品自在在线观看 | 精品一区二区三区免费爱 | 国产porn在线 | 国产91亚洲精品一区二区三区 | 欧美巨根| xxxx18韩国护士hd老师 | 黄在线观看在线播放720p |