用动画改变框架

时间:2013-09-04 05:29:31

标签: ios ipad caanimation

我创建了一个动画:

NSArray *animationArr=[[NSArray alloc] initWithObjects:
                        [UIImage imageNamed:@"FirstPosition@2x"],
                        [UIImage imageNamed:@"SecondPosition@2x"],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];

1 个答案:

答案 0 :(得分:2)

通过你制作动画的方式,我认为不可能。但你可以用UIView动画块来做到这一点,如:

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