所以,我對iOS編程相當陌生,並且繼承了一位前同事的項目。我們正在構建一個包含量表UI的應用程序。當數據進入時,我們想要平滑地將我們的「圖層」(這是針圖像)從當前角度旋轉到新的目標角度。這裏是我們所擁有的,與較慢的數據行之有效:如何重置/重新啓動動畫並使它看起來連續?
-(void) MoveNeedleToAngle:(float) target
{
static float old_Value = 0.0;
CABasicAnimation *rotateCurrentPressureTick = [CABasicAnimation animationWithKeyPath:@"transform.rotation");
[rotateCurrentPressureTick setDelegate:self];
rotateCurrentPressureTick.fromValue = [NSSNumber numberWithFloat:old_value/57.2958];
rotateCurrentPressureTick.removedOnCompletion=NO;
rotateCurrentPressureTick.fillMode=kCAFillModeForwards;
rotateCurrentPressureTick.toValue=[NSSNumber numberWithFloat:target/57.2958];
rotateCurrentPressureTick.duration=3; // constant 3 second sweep
[imageView_Needle.layer addAnimation:rotateCurrentPressureTick forKey:@"rotateTick"];
old_Value = target;
}
的問題是,我們有一個新的數據方案,其中新數據可以進來(並呼籲上述方法)更快,前動畫完成。我認爲發生的事情是動畫從舊目標重新啓動到新目標,這使得它非常激動。
所以我想知道如何修改上面的功能添加一個連續/重新啓動的行爲,具體如下:
- 檢查當前動畫正在進行中,
- 如果是這樣,找出其中的當前的動畫角,然後
- 取消當前,並開始從當前旋轉一個新的動畫到新的目標旋轉
是否有可能建立一個可進入上述功能的行爲?
謝謝。對不起,如果這個問題似乎不知情,我已經研究和理解上述對象/方法,但我不是專家。