iOS 7 UIView animateWithDuration:动画:完成:在任何类型的转换中重置其动作

时间:2014-06-11 20:57:55

标签: ios animation uiview core-animation catransition

我最近遇到了我的应用程序的问题。

我通常使用

[UIView animateWithDuration:(NSTimeInterval) animations:^{...} completion:^(BOOL finished) {...}];

制作我的动画,它一直运作到现在。这是我的问题代码

UIImageView *someimage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"someimage"]];
[someimage setFrame:CGRectMake(0, 0, 200, 200)];
[self.view addSubView:someimage];
[UIView animateWithDuration:0.5 animations:^{
    [someimage setFrame:CGRectMake(400, 400, 200, 200)];
} completion:^(BOOL finished) {
    NSLog(@"Just finish moving some image lets rotate it!");
    [UIView animateWithDuration:0.5 animations:^{
        someimage.transform = CGAffineTransformMakeRotation(M_PI);
    } completion:^(BOOL finished) {
        NSLog(@"What just happened?");
    }];
}];

我有一个图像,我使用动画从一个角落移动到另一个角落。然后,当动画结束时我旋转它,但当我进行旋转时,UIImageView再次出现在角落。

有人可以解释一下为什么会发生这种情况以及如何处理它?<​​/ p>

谢谢!

1 个答案:

答案 0 :(得分:3)

UIView类引用说:

  

警告如果transform属性不是identity变换,则为   此属性的值未定义,因此应忽略。

同时更改视图(或图层)帧及其变换不会按预期工作。相反,请更改视图的中心属性。