Как я могу вызвать uianimation для imageView, похожего на Circle

Я хочу создать круговую анимацию uiimageview. Когда uiimage завершается в self.left, немедленно вызывается снова после uiimageview.right. Я хочу назвать анимацию похожей, но моя анимация была плохой. Потому что когда он закончил self.left, он начал self.right. :( Но я хочу выглядеть как изображение:

[ ----(end of image)---------       --------(start of image)]

Me. I did it.
[ -----(end of image)----------      ] 

Когда закончился конец изображения, он идет после.

Мой код выглядит так:

 //for start 
    [UIView beginAnimations:nil context:nil];

    imageView.left = - imageView.width;
    // imageView2.left = - imageView.width;


    [UIView setAnimationDuration:140.0];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(moveToLeft:finished:context:)];
    [UIView commitAnimations];




-(void)moveToLeft:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 
{ 
     imageView.left = self.right;
     imageView2.left = self.right + 3600;




     [UIView beginAnimations:nil context:nil];
     [UIView setAnimationDuration:140.0];
     [UIView setAnimationDelegate:self];
     imageView.left = -imageView.right;

     imageView2.left = -imageView2.right;





    //  imageView.left = - imageView.width;
    [UIView setAnimationDidStopSelector:@selector(moveToLeft:finished:context:)];
    [UIView commitAnimations];



   // imageView.frame.origin.x = imageView.left - self.right

 }

Как я могу это сделать. Спасибо


person Yusuf OZKAN    schedule 24.11.2011    source источник


Ответы (1)


Вместо использования beginAnimations теперь рекомендуется использовать блочный подход (доступен в iOS4 и более поздних версиях).

[UIVIew animateWithDuration:140.0 delay:0.0
                    options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat
                 animations:^(void) {
                     imageView.frame = CGRectMake( *Add Final position here* );
                 }
                 completion:^(BOOL finished) {}];

Параметр options:UIViewAnimationOptionAutoreverse гарантирует, что анимация будет двигаться вперед и назад. Параметр UIViewAnimationOptionRepeat будет поддерживать анимацию.

Внутри блока добавьте свой код анимации туда, куда должно перемещаться представление. Затем он будет двигаться вперед и назад к этой точке.

person tarmes    schedule 24.11.2011
comment
О, и, поскольку вы здесь впервые, вы должны знать, что если это решит вашу проблему, вы должны принять ответ, поставив галочку слева. - person tarmes; 24.11.2011