Свойство «animationImages» в UIImageView не связано с coreanimation, оно просто запускает внутренний NSTimer, который переключал изображение.
-(void)animationDidStop:finished:context:
селектор вызывается как часть основной анимации.
В вашем случае я бы попробовал что-то вроде этого:
IBOutlet UIImageView *block;
NSArray *image_arr = [NSArray arrayWithObjects:[UIImage imageNamed:@"img1"],[UIImage imagedNamed:@"img2"],nil];
block.animationImages = image_arr;
block.animationDuration = animationDuration;
block.animationRepeatcount = animationRepeatCount;
[block startAnimating];
[self performSelector:@selector(animationFinished:) withObject:@"someAnimationId" afterDelay: animationDuration * animationRepeatCount];
Имейте в виду, что этот метод может вызвать некоторую задержку - если изображения кадров анимации отображаются в первый раз как часть анимации, ленивая загрузка запускается до первого запуска анимации, и это может повлиять на точность вызова executeSelector.
Если это окажется проблемой проверьте метод forceLoad этого ответа , и если это не сработает, вызовите startAnimation для скрытого UIImageView, это помогло мне один раз.