2013-10-17 115 views
0

我已經檢查並嘗試過各種答案。但它仍然不適合我。 這裏是我的代碼,如何停止並重新啓動UIView塊動畫中的動畫

-(void)animate { 

    [img1 startAnimating]; 

    [UIView animateWithDuration:10 
        animations:^{ 

         img1.transform = CGAffineTransformMakeTranslation(0.0, -1000);}]; 

    [img2 startAnimating]; 

    [UIView animateWithDuration:13 
        animations:^{ 
         img2.transform = CGAffineTransformMakeTranslation(0.0, -1000);}]; 

} 

我想獲得動畫開始時,我按下一個按鈕,停止當我按下另一個。它適用於啓動和停止。但問題來了,當我重新啓動它按下再次調用此方法的開始按鈕。當我第二次打電話時沒有任何反應??????

回答

4

Transformation unable to perform twice

嗨,你需要使用完畢塊來執行這個動畫,

初始化這樣一些別的地方....

@interface YourClass() 

{ 
    CGAffineTransform trans1 ; 

    CGAffineTransform trans2 ; 

} 

@End 
.... 


    -(void)animate { 


     [_img1 startAnimating]; 

     [UIView animateWithDuration:10 
         animations:^{ 
          trans1 = _img1.transform; // 
          _img1.transform = CGAffineTransformMakeTranslation(0.0, -1000);} completion:^(BOOL finished) { 
           _img1.transform = trans1; 
          }]; 

     [_img2 startAnimating]; 

     [UIView animateWithDuration:13 
         animations:^{ 
          trans2 = _img2.transform; 
          _img2.transform = CGAffineTransformMakeTranslation(0.0, -1000);} completion:^(BOOL finished) { 
           _img2.transform = trans2; 
          }]; 

    } 
+0

請你解釋一下?我沒有得到你 –

+0

你試過的代碼? – Spynet

+0

警報?什麼警報可以詳細請 – Spynet