2012-03-14 14 views
0

長押しのジェスチャーでアニメーションフレームサイズのUIViewがあります。元のサイズ( - 100 heigh)にtap_end減少の最大サイズ(heigh + 100)へtap_beginフレームの高さの増加にUIViewアニメーションのやりとり

- (IBAction)longPressGesture:(id)sender { 
    NSTimeInterval duration = 1; 
    CGRect newFrame = self.view.frame; 

    switch (((UIGestureRecognizer *)sender).state) { 
     case UIGestureRecognizerStateBegan: 
      newFrame.size.height += 100; 
      break; 
     case UIGestureRecognizerStateEnded: 
      newFrame.size.height -= 100; 
      break;    
     default: 
      break; 
    } 

    [UIView animateWithDuration:duration animations:^{ 
     self.view.frame = newFrame; 
    }]; 

} 

。問題は、タップして、フレームが伸び始めた後、成長している間に指を離し、2番目のアニメーションが現在の状態からではなく、大きなフレームから開始することです。 (フレームの高さが250である場合)

例えばフレームは高さ200から300へとアニメーションの途中でアニメーションを開始するために

私は、指とフレームの高さは、直ちに300に設定解除し、200

どのように減少し始めます最初のアニメーションを中断し、curentの高さ(たとえば250)から2番目の部分を開始できる動作を実装しますか?

最初のアニメーションが最初に完了しなければならない動作で、2番目のアニメーションを開始した後でのみ動作しますか?

答えて

3

animateWithDuration:delay:options:animations:completion:を試して、オプションsetAnimationBeginsFromCurrentStateを含めることができます。

+0

素晴らしい!ありがとうございました! – Lloyd18

関連する問題