我想在iOS中使用animateWithDuration:方法制作動畫。添加隨機性來循環UIView動畫塊
我在屏幕上移動一個圖像(UIImageView中的雲的簡單圖片),然後使該動畫在循環中運行,並且每次穿過屏幕時都要更改速度(持續時間)。
我已經嘗試了一些方法,但都表現不正確的我。
我第一次,雖然我可以用UIViewAnimationOptionRepeat這樣的:
[UIImageView animateWithDuration:arc4random() % 10 + 1
delay:0.0
options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionRepeat
animations:^{
//moving the cloud across the screen here
}
completion:^(BOOL finished) {
NSLog(@"Done!");
}];
但是,這似乎並沒有再次調用arc4random()重置時間...即。只有在每次啓動應用程序時,雲纔會以隨機速度穿過屏幕,而不是每次動畫循環時。
我然後使用完畢塊火動畫再次嘗試這樣的:
-(void)animateMethod
{
[UIImageView animateWithDuration:arc4random() % 10 + 1
delay:0.0
options:UIViewAnimationOptionCurveLinear
animations:^{
//moving the cloud across the screen here
}
completion:^(BOOL finished) {
NSLog(@"Done!");
[self animateMethod];
}];
}
這給了我,我要找的效果,但是當我推到另一個視圖使用導航控制器完成塊被解僱似乎無盡的循環(我的日誌得到垃圾郵件與「完成!」)
任何人都知道的方式來獲得所需的效果我想正確的方式?
是的,這解決了我的問題..我知道我是在正確的軌道上。我剛開始學習iOS的動畫,所以感謝NSTimer和CADisplayLink的提示。 –
沒問題。快樂編碼:) –