我試圖在兩個圖像之間閃爍動畫,以便將用戶的注意力吸引到指示符以注意更改。我希望圖像在保留新圖像之前僅閃爍一次或兩次。事件的時間線如下所示:如何在持續時間(閃爍效果)後更改UIImageView的UIImage
- 舊圖像已設置並正在等待發生特定事件。
- 發生事件並開始閃爍動畫。新圖像顯示0.25秒。
- 舊圖像顯示0.25秒。
- 新圖像顯示0.25秒。動畫結束。
由於動畫時間短,我的印象是有一種方法可以在不使用NSTimer的情況下做到這一點。我目前的嘗試是低於
+(void)blinkImage:(UIImageView*)view toNewImage:(UIImage*)newImage numOfTimes:(int)numOfTimes{
float waitInterval = 0.25;
float totalWaitTime = 0.0;
UIImage *oldImage = view.image;
view.image = newImage;
totalWaitTime = totalWaitTime+waitInterval;
for (int times = 0; times<numOfTimes; times++) {
[UIView beginAnimations:@"setOld" context:nil];
[UIView setAnimationDelay:totalWaitTime];
[UIView setAnimationDuration:waitInterval];
view.image = oldImage;
totalWaitTime = totalWaitTime+waitInterval;
NSLog(@"SetOld; waitTime %f", totalWaitTime);
[UIView commitAnimations];
[UIView beginAnimations:@"setNew" context:nil];
[UIView setAnimationDelay:totalWaitTime];
[UIView setAnimationDuration:waitInterval];
view.image = newImage;
totalWaitTime = totalWaitTime+waitInterval;
NSLog(@"SetNew; waitTime %f", totalWaitTime);
[UIView commitAnimations];
}
}
但是,這並沒有產生預期的結果。通過上面的代碼,視圖簡單地改變爲新的圖像,並且什麼都沒做。
任何幫助將不勝感激。提前致謝!
動畫過渡不允許我使用多個背到後面的動畫,但它確實給了我一個更優雅的解決方案。我決定只使用flipFromLeft和一個動畫來代替。感謝您的迴應! – Krejko