我想放在一起有點像速度計一樣的動畫。核心動畫 - 在序列中播放2個動畫
的第一個動畫得到針
CFTimeInterval localMediaTime = [needle convertTime:CACurrentMediaTime() fromLayer:nil];
CABasicAnimation *needAni = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
needAni.duration = 0.5f;
needAni.fromValue = [NSNumber numberWithFloat:0.0];
needAni.toValue = [NSNumber numberWithFloat:(rotVal * M_PI/180.0)];
needAni.timingFunction = [CAMediaTimingFunction functionWithControlPoints:0.195: 0.600: 0.790: 0.405];
needAni.fillMode = kCAFillModeBackwards;
[needle.layer addAnimation:needAni forKey:nil];
後播放我想有針來回反彈了一點,當其達到全速。這個動畫的確如此:
CABasicAnimation *needAni2 = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
needAni2.duration = 0.1f;
needAni2.fromValue = [NSNumber numberWithFloat:(rotVal * M_PI/180.0)];
needAni2.toValue = [NSNumber numberWithFloat:((rotVal+5) * M_PI/180.0)];
needAni2.fillMode = kCAFillModeBackwards;
needAni2.autoreverses = YES;
needAni2.repeatCount = HUGE_VAL;
needAni2.beginTime = localMediaTime + 0.5f;
[needle.layer addAnimation:needAni2 forKey:nil];
現在,當我把這一起只有第二個動畫播放。
我厭倦了將這兩個動畫放到一個組中,但我似乎無法重複第二個動畫,它重複了整個過程。如果我將組持續時間等於HUGE_VAL,還是有更好的方法來執行此操作,是否會出現性能問題?
感謝
思考這一點。我一直在閱讀,這是一種糟糕的形式。這有什麼道理嗎? – Imq 2013-04-03 23:05:41
那麼,它應該在這種情況下工作得很好,但它有點icky ..如果沒有別的,它不是一個可以很好地擴展到更復雜的動畫的方法 – baris 2013-04-03 23:45:08