2010-08-02 5 views
6

У меня есть изображение, которое анимируется, пока вы не нажмете кнопку, которая говорит «Стоп». Код работает и все, но изображение возвращается к первому изображению в массиве. Как я могу добавить код, чтобы сообщить ему, чтобы он остановился на изображении, на котором он сейчас находится?Остановка анимации при текущем изображении

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    imageView.animationImages = [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"a0001.png"], 
          [UIImage imageNamed:@"a0002.png"], 
          [UIImage imageNamed:@"a0003.png"], 
          [UIImage imageNamed:@"a0004.png"], 
          [UIImage imageNamed:@"a0005.png"], nil]; 

    imageView.animationDuration = 3.00; 
    imageView.animationRepeatCount = 0; 
    [imageView startAnimating]; 
    [self.view addSubview:imageView]; 
} 

- (IBAction)stopAni {  
    [imageView stopAnimating];  
} 

Благодаря


Спасибо деканом, эй ты мне нужен еще раз: р теперь я был в состоянии остановить его там, где я хочу, я могу сделать это продолжить анимацию, где он остановился ??

ответ

3

Установите свойство изображения в UIImageView, чтобы тот, который вы хотите, чтобы остановить на

- (IBAction)stopAni { 
    [imageView stopAnimating]; 
    [imageView setImage:[[imageView animationImages] objectAtIndex:currentFrame]; 
} 

текущего кадра только продолжительность анимации, деленное на количество времени, которое вы были animatin (вы будете нужно сохранить время, когда вы начали анимацию!)

+0

Спасибо deanWombourne: D – awlcs

+0

эй, но как сохранить время, когда я начал анимацию? – awlcs

+1

Что-то вроде __startTime = [[NSDate date] timeIntervalSince1970]; __ должен дать вам контрольное время (как NSTimeInterval). Вы можете получить продолжительность анимации по __NSTimeInterval duration = [[NSDate date] timeIntervalSince1970] - startTime; __ – deanWombourne

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