2013-10-26 58 views
0

我試圖用一個UIView動畫簡單地移動視圖在屏幕上:的UIView動畫:模擬速度

[UIView animateWithDuration:.10 delay:0 options: nil animations:^ 
    { 
     self.menusView.frame = endingMenuViewFrame;; 
    } 
    completion:^(BOOL finished) 
    { 

    }]; 

我想,這樣的UIView浮動一點點添加動畫,當它到達在它下降之前,即類似於是否有人在空中跳躍 - 當他們第一次跳躍時,他們很快就會射擊,但隨着重力逐漸減慢,當他們到達跳躍的頂部時,它們最終將他們推回地球。有誰知道如何做到這一點?

回答

2

使用此代碼嘗試。每當身高減少一半時,這會使你的視線反彈三次。你可以添加更多的反彈。

CGFloat offset = 200.0; 

CGRect originalFrame = self.menusView.frame; 

[UIView animateWithDuration:1.0 animations:^{ 
    CGRect frame = self.runnerAlertView.frame; 
    frame.origin.y = frame.origin.y - offset; 
    self.menusView.frame = frame; 
} completion:^(BOOL finished){ 
    [UIView animateWithDuration:1.0 animations:^{ 

     self.menusView.frame = originalFrame; 
    } completion:^(BOOL finished) { 
     [UIView animateWithDuration:1.0 animations:^{ 
      CGRect frame = self.menusView.frame; 
      frame.origin.y = frame.origin.y - 0.5 *offset; 
      self.menusView.frame = frame; 
     } completion:^(BOOL finished){ 
      [UIView animateWithDuration:1.0 animations:^{ 

       self.menusView.frame = originalFrame; 
      } completion:^(BOOL finished) { 
       [UIView animateWithDuration:1.0 animations:^{ 
        CGRect frame = self.runnerAlertView.frame; 
        frame.origin.y = frame.origin.y - 0.25 * offset; 
        self.menusView.frame = frame; 
       } completion:^(BOOL finished){ 
        [UIView animateWithDuration:1.0 animations:^{ 

         self.menusView.frame = originalFrame; 
        }]; 
      }]; 
     }]; 
     }]; 
    }]; 
}]; 
+0

+1。感謝那。有點這樣做,我正在用和你一樣的方式來嵌套UIViewAnimations,並且它從來沒有把它做對。我想知道我是否可能需要使用核心動畫。 –