Есть ли способ узнать, в какой кадре его анимации включен UIImage? Когда вы начинаете его, вы даете ему массив анимационных изображений, поэтому он должен где-то хранить индекс текущего изображения. Вы знаете, как я могу это узнать? Кроме того, есть ли способ сообщить UIImageView, какому кадру для начала анимации?Определите, какой из его анимаций отображает UIImageView?
3
A
ответ
3
я не мог найти ни имущества в документации, ни подозрительной Ивар или частный метод после класса демпинга UIKit, поэтому лучшее, что я мог думать о:
NSDate *startDate; // instance variable
- (void)startAnimation
{
startDate = [NSDate date];
[imageView startAnimating];
}
- (int)currentImageIndex
{
NSTimeInterval elapsed = -1 * [startDate timeIntervalSinceNow];
int nFrames = imageView.animationImages.count;
NSTimeInterval frameDuration = imageView.animationDuration/nFrames;
int current = elapsed/frameDuration;
return current % nFrames;
}
О том, как начать анимация на конкретном изображении: используйте NSMutableArray
для хранения изображений и поверните массив таким образом, чтобы его первым элементом было изображение, с которого вы хотите начать, а затем повторно установите свойство animationImages
изображения. Чтобы повернуть NSMutableArray
, см. Ответы на this question.