2012-01-06 33 views
0

我有一段音頻&關聯播放&停止按鈕,當按下播放按鈕時我使用光標的動畫來表示音頻樣本中的某個點在給定時刻。每當按下停止按鈕時,我希望我的光標返回到其初始座標。我相信UIViewAnimationOptionBeginFromCurrentState可能是這樣做的方式?我的初始動畫代碼如下,任何人有任何提示如何使用UIViewAnimationOptionBeginFromCurrentState爲了發送光標回到其原始座標?如何實現UIViewAnimationOptionBeginFromCurrentState

感謝提前任何幫助:)

[UIView beginAnimations:@"MoveView" context:nil]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
    [UIView setAnimationDuration:2.0f]; 
    yellowBar.frame = CGRectMake(310, 20, 5, 100); 
    [UIView commitAnimations]; 
+0

注意,當原創動畫仍在進行中UIViewAnimationOptionBeginFromCurrentState才適用。 – fishinear 2012-11-21 15:12:20

回答

6

如果您仍在使用beginAnimations/commitAnimations,請使用setAnimationBeginsFromCurrentState:。否則,您可以將UIViewAnimationOptionBeginFromCurrentState傳遞給animateWithDuration:delay:options:animations:completion:作爲選項參數。

0

AFAIK你只能使用基於塊的動畫(你鼓勵仍要使用)該選項。您將使用animateWithDuration:delay:options:animations:completion:方法,描述爲here

2

布賴恩是正確的,你有兩個選擇:

//Initialize newFrame here 

[UIView animateWithDuration:0.5 
         delay:0.0 
        options:UIViewAnimationCurveEaseInOut | UIViewAnimationOptionBeginFromCurrentState //Multiple options 
       animations:^ { 

        [yourView setFrame: newFrame]; 
       } 
       completion:^ (BOOL finished) { 

       }]; 

或者

//Initialize newFrame here 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
[UIView setAnimationDuration:0.5]; 

    [yourView setFrame: newFrame]; 

[UIView commitAnimations];