簡體   English   中英

UIView animateWithDuration線性嗎?

[英]UIVIew animateWithDuration linear?

我想為多個UIImageViews設置動畫,以從A點線性移動到B點。

我正在使用options:UIViewAnimationOptionCurveLinear -Apple文檔說:“ 線性動畫曲線會導致動畫在其持續時間內均勻地發生。

這是我正在使用的代碼:

[UIView animateWithDuration:1.5
                              delay:0.0
                            options:UIViewAnimationOptionCurveLinear
                         animations:^{

                             //start animation of random grasses with const speed and const y
                             for (int i=0;i<45;i++){
                                 if ([self.view viewWithTag:i+100]){

                                     CGRect frameOfGrass = [self.view viewWithTag:i+100].frame;
                                     frameOfGrass.origin.y = -100;
                                     [self.view viewWithTag:i+100].frame = frameOfGrass;
                                 }}
        }
                         completion:^(BOOL finished){
                           //
  }];

注意 :每個imageView的Y位置都是600-700之間的隨機數。

但是結果看起來更像UIViewAnimationOptionCurveEaseOut- “緩和曲線使動畫快速開始,然后在完成時變慢。” 因為所有圖像在和時都會變慢。

這是應用程序運行的屏幕截圖:

在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明在此處輸入圖片說明

知道為什么會這樣嗎?

對於所有草圖像,行進距離都不相同。 記住v = d / t。 在您的情況下,所有草圖像將以不同的速度傳播,因為它們需要同時達到y.origin = -100。

嘗試這個:

frameOfGrass.origin.y = frameOfGrass.origin.y - 600;

這應該使所有草圖像在相同的時間內傳播相同的距離。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM