Я пытаюсь анимировать мигание между двумя изображениями в представлении изображений, чтобы привлечь внимание пользователя к индикатору, чтобы заметить изменение. Я хотел бы, чтобы изображение мигало только один или два раза, прежде чем оставаться на новом изображении. Хронология событий будет примерно такой:
- Установлено старое изображение, и оно ожидает определенного события.
- Происходит событие и начинается мигающая анимация. Новое изображение отображается в течение 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];
}
}
Однако это не дало ожидаемых результатов. С приведенным выше кодом представление просто изменилось на новое изображение и больше ничего не делало.
Любая помощь будет принята с благодарностью. Заранее спасибо!