国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

CoreAnimation-04-核心動畫必備基礎

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

概述


  • 簡介

    • 核心動畫提供了一組非常強大的動畫API,通過該組API可以高效的實現絕大部分絢麗的動畫效果
  • 注意事項

    • 核心動畫的操作在子線程中執行,不會阻塞主線程
    • 核心動畫直接作用與CALayer對象上,不是UIView對象上
  • 核心動畫與UIView動畫的區別

    • 核心動畫不會改變控件的frame屬性,顯示的只是一種假象
    • UIView動畫會改變控件的frame屬性,顯示的是控件真實地frame屬性

核心動畫類


  • 核心動畫相關類的關系圖

    • 此圖來源官方文檔,不知為何右下角不是CAKeyframeAnimation,而是協議。CAKeyframeAnimation為CAPRopertyAnimation的可直接使用子類
  • CAAnimation與CAPropertyAnimation

    • 二者都是抽象類,不可以直接使用,需要使用其子類
    • CAAnimation可直接使用的子類,

      • CAAnimationGroup,組動畫
      • CATransaction,轉場動畫
    • CAPropertyAnimation可直接使用的子類

      • CABasicAnimation,基本動畫
      • CAKeyframeAnimation,關鍵幀動畫

CAAnimation類


  • 3個重要的屬性

    • timingFunction(CAMediaTimingFunction *),速度控制函數
    • delegate(id),動畫代理
    • removedOnCompletion(BOOL),動畫執行完畢是否將其從圖層上移除

CAAnimation的代理方法


  • 注意

    • CAAnimation的代理方法是以NSObject分類的方式實現的,如圖

  • 代理方法

    • 動畫開始時調用
    - (void)animationDidStart:(CAAnimation *)anim;
    • 動畫結束時調用
    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

CAMediaTiming協議


  • 常用屬性如圖中屬性

    • beginTime(CFTimeInterval),開始時間
    • duration(CFTimeInterval),單次動畫的執行時間
    • speed(float),動畫速度
    • timeOffset(CFTimeInterval),從時間偏移量timeOffset開始執行動畫,并將timeOffset之前的動畫壓縮并拼接到尾部
    • repeatCount(float),重復次數
    • repeatDuration(CFTimeInterval),動畫的重復時間,與repeatCount兩者選擇時間最短者
    • autoreverses(BOOL),是否恢復到動畫開始狀態(以動畫的方式)
    • fillMode(NSString *),動畫的填充模式

動畫的填充模式


  • 注意

    • 若要使填充模式有效,通常設置動畫的removedOnCompletion屬性為NO
  • 4種模式

    • kCAFillModeForwards,動畫結束后,layer保持動畫結束的狀態
    • kCAFillModeBackwards,動畫加入到layer中,立即進入動畫初始狀態等待動畫開始執行
    • kCAFillModeBoth,同時具備以上兩種模式
    • kCAFillModeRemoved,動畫結束后,layer會恢復到原來的狀態

動畫的速度控制函數


  • kCAMediaTimingFunctionLinear,勻速
  • kCAMediaTimingFunctionEaseIn,緩慢進入,加速離開
  • kCAMediaTimingFunctionEaSEOut,全速進入,減速到達目標地點
  • kCAMediaTimingFunctionEaseInEaseOut,緩慢進入,中途加速,減速到達目標地點
  • kCAMediaTimingFunctionDefault,默認速度,即kCAMediaTimingFunctionEaseInEaseOut

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 颍上县| 兰溪市| 苍南县| 高青县| 大名县| 贵南县| 时尚| 通榆县| 田阳县| 资中县| 西吉县| 阳信县| 西丰县| 邓州市| 分宜县| 山东省| 商城县| 阳朔县| 祁门县| 河池市| 通许县| 韶关市| 宿州市| 邯郸县| 南江县| 县级市| 赤壁市| 东乡| 东光县| 通州区| 铁岭县| 祥云县| 侯马市| 福建省| 赣州市| 教育| 龙海市| 特克斯县| 从江县| 娱乐| 扶绥县|