2013-07-25 1 views
3

Есть ли способ узнать, в какой кадре его анимации включен UIImage? Когда вы начинаете его, вы даете ему массив анимационных изображений, поэтому он должен где-то хранить индекс текущего изображения. Вы знаете, как я могу это узнать? Кроме того, есть ли способ сообщить UIImageView, какому кадру для начала анимации?Определите, какой из его анимаций отображает UIImageView?

ответ

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.

 Смежные вопросы

  • Нет связанных вопросов^_^