2010-10-06 6 views
1

У меня с трудом перемещается изображение в другое место после завершения первой анимации.iphone - перемещение UIImageView

изображение анимируется в точке, которую я указал, а затем останавливается (это отлично работает). Затем я хотел бы переместить изображение в другое место и повторить.

вот мой код:

-(void) loadTap { 

NSArray *imageArray = [[NSArray alloc] initWithObjects: 
                 [UIImage imageNamed:@"tap1.png"], 
                 [UIImage imageNamed:@"tap2.png"], 
                 [UIImage imageNamed:@"tap3.png"], 
                 [UIImage imageNamed:@"tap4.png"],              
               nil]; 

    tapImage.animationImages = imageArray; 
    tapImage.animationRepeatCount = 1; 

    [imageArray release]; 

    tapImage.animationDuration = 1; 
    tapImage.animationRepeatCount = 20; 

    [tapImage startAnimating]; 
    tapImage.center = CGPointMake(156, 110); 

} 

спасибо за любую помощь.

ответ

6

Для того, чтобы переместить изображение, вы должны заключить код для перемещения в анимации блока:

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.5]; 
tapImage.center = CGPointMake(156, 110); 
[UIView commitAnimations]; 

Вы также можете дать метод для выполнения после завершения анимации с UIView setAnimationDidStopSelector: методом.

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.5]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(animateImages)]; 
tapImage.center = CGPointMake(156, 110); 
[UIView commitAnimations]; 

//other stuff 

-(void)animateImages{ 
    [tapImage startAnimating]; 
} 
+0

это очень помогает. большое спасибо. – hanumanDev

+0

одна быстрая вещь - если после завершения анимации я хочу переместить изображение в tapImage.center = CGPointMake (156, 210); а затем оживить, будет ли это в новом блоке? – hanumanDev

+0

Какая анимация? Вам не нужен блок анимации для циклического перемещения по массиву изображений, но вам нужна анимация представления относительно его окружения (движение, поворот, затухание и т. Д.). Поэтому, если ваша последовательность событий: 1. Проецируйте изображения. 2. Перейдите к пункту (156, 110). 3. Повторите цикл. 4. Перейдите к пункту (156, 210). 5. Повторите цикл. то, да, вам нужен отдельный блок анимации в каждой последовательности движения. – executor21

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