iOS 動畫筆記

躍然發表於2017-05-31

一、CASpringAnimation

iOS9才引入的動畫類,它繼承於CABaseAnimation,用於製作彈簧動畫

  1. eg.

    let spring = CASpringAnimation(keyPath: "position.x")
    spring.damping = 5;
    spring.stiffness = 100;
    spring.mass = 1;
    spring.initialVelocity = 0;
    spring.fromValue = label.layer.position.x;
    spring.toValue = label.layer.position.x + 50;
    spring.duration = spring.settlingDuration;
    label.layer.addAnimation(spring, forKey: spring.keyPath);
  2. 引數說明

mass:

質量,影響圖層運動時的彈簧慣性,質量越大,彈簧拉伸和壓縮的幅度越大
如果把質量改成10,則動畫變成動畫的速度變慢,並且波動幅度變大。

stiffness:

剛度係數(勁度係數/彈性係數),剛度係數越大,形變產生的力就越大,運動越快。

damping:

阻尼係數,阻止彈簧伸縮的係數,阻尼係數越大,停止越快。

initialVelocity:

初始速率,動畫檢視的初始速度大小。速率為正數時,速度方向與運動方向一致,速率為負數時,速度方向與運動方向相反。

settlingDuration:

結算時間 返回彈簧動畫到停止時的估算時間,根據當前的動畫引數估算。通常彈簧動畫的時間使用結算時間比較準確。

  1. 參考:

    iOS UIView Animation - Spring

二、CALayer Animation - Gradient Animation

參考:

  1. Apple CoreAnimation_guide

  2. calayer-animation-gradient-animation/

三、下拉重新整理示例

下載地址: https://github.com/Joeyechang/MyPullToRefreshDemo.git

四、其它參考:

  1. iOS UIView Animation - First Animation
  2. iOS UIView Animation - Keyframe
  3. iOS UIView Animation - Practice
  4. iOS UIView Animation - Transition

相關文章