#iphone #animation
#iPhone #Анимация
Вопрос:
Следующий код перемещает imageview справа налево один раз, но я хочу делать это непрерывно. переместите справа налево, затем вернитесь влево за пределы экрана и снова повторите справа налево.
imageview=[[UIImageView alloc] initWithFrame:CGRectMake(320, 200, 2635, 200)];
image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"animal" ofType:@"png"]];
[imageview setImage:image];
[self.view addSubview:imageview];
[UIView beginAnimations:@"MoveAndStrech" context:nil];
[UIView setAnimationDuration:40]; //30
[UIView setAnimationBeginsFromCurrentState:YES];
CGPoint p, b, a, c, d,e;
p.x = 0;
p.y = 200;
imageview.center=p;
[UIView commitAnimations];
Комментарии:
1. вы говорите о переходе туда и обратно или о прямом переходе из крайнего левого положения в крайнее правое?
2. не туда-сюда, просто повторяйте один и тот же шаблон (справа налево) снова и снова.
3. согласно его редактированию, он не хочет автозаполнения
Ответ №1:
Добавьте следующие строки:
[UIView setAnimationRepeatCount: HUGE_VAL];
[UIView setAnimationRepeatAutoreverses: YES];
Или, если вы нацелены на iOS 4.0 , тогда предпочтительнее анимация на основе блокировок:
[UIView animateWithDuration:40.0f
delay:0.0f
options: UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionBeginFromCurrentState
animations: ^(void){imageview.center = CGPointMake(0, 200);}
completion:NULL];
Комментарии:
1. измените setAnimationRepeatAutoreverses на NO, и вы можете согласиться с этим ответом @user482473