2013-09-04 6 views
1

создать анимацию:Изменение рамки с анимацией

NSArray *animationArr=[[NSArray alloc] initWithObjects: 
         [UIImage imageNamed:@"[email protected]"], 
         [UIImage imageNamed:@"[email protected]"],nil]; 

    [self.animatView setAnimationImages:animationArr]; 
    [self.animatView setAnimationDuration:2.4]; 
    [self.animatView setAnimationRepeatCount:1]; 
    [self.animatView startAnimating]; 

Это работает, но мне нужно, чтобы изменить свою позицию animatView. Как я могу это сделать? Для первого изображения и для второго кадра будут разные.

Любые идеи?

Если это группа анимации, как я могу изменить кадр для каждой анимации?

Спасибо за помощь!

Редактировать # 1:

Для три изображения для анимации я использую это, но это не работает нормально. Сначала он меняет кадр, а затем обрабатывает первую анимацию.

CGRect animatFrame = self.animatView.frame; 

[UIView animateWithDuration:self.animatView.animationDuration 
        animations:^{ 

         self.animatView.frame = CGRectMake(self.animatView.frame.origin.x + 5.5/2.0, self.animatView.frame.origin.y + 28.5/2.0, self.animatView.frame.size.width, self.animatView.frame.size.height); 
         self.animatView.frame = CGRectMake(self.animatView.frame.origin.x - 14.0/2.0, self.animatView.frame.origin.y - 6.5/2.0, self.animatView.frame.size.width, self.animatView.frame.size.height); 

        } 
        completion:^(BOOL finished){ 

         self.animatView.frame = animatFrame; 

        }]; 
    [UIView commitAnimations]; 

ответ

2

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

[UIView animateWithDuration:<#(NSTimeInterval)#> animations:^{ 
    <#code#> 
}];