保持原始位置UIImageView

时间:2013-08-31 17:29:02

标签: ios objective-c animation uiimageview rotation

我现在正在为app iOS devices实施一个objective C所以在UIImageView中,我在询问如何在轮换后如何回到原点位置UIImageView

例如,我使用我的CGAffineTransform initialPosition = CGAffineTransformMakeRotation(0); CGAffineTransform finalPosition = CGAffineTransformMakeRotation(M_PI/2); [UIView beginAnimations: @"Rotate animation" context: NULL]; MySuperUIImageView.transform = initialPosition; [UIView setAnimationDuration:1.0]; [UIView setAnimationRepeatAutoreverses:NO]; [UIView setAnimationRepeatCount:1]; [UIView setAnimationDelegate:self]; MySuperUIImageView.transform = finalPosition; [UIView commitAnimations];

MySuperUIImageView.alpha = 0.0f;

但之后,我使用以下方法让它消失了一段时间:

{{1}}

当我重新使用它时,我希望它处于第一个原始位置,没有旋转。是否可以轻松实现?

提前致谢!

2 个答案:

答案 0 :(得分:2)

是。很容易:

MySuperUIImageView.transform = CGAffineTransformIdentity;

答案 1 :(得分:0)

实际上,有。由于您正在对视图应用仿射变换,因此您可以通过将其变换设置为应用身份变换矩阵的CGAffineTransformIdentity来重置应用于视图的所有变换:

1 - 0 - 0
0 - 1 - 0
0 - 0 - 1
[mySuperUIImageView setTransform:CGAffineTransformIdentity];

注意:在Objective C中,约定是使用大写字母启动类名,使用小写字母启动实例。

从iOS 4开始,Apple建议使用基于块的UIView动画。以下是我认为您尝试使用更新代码的示例。

CGAffineTransform finalPosition = CGAffineTransformMakeRotation(M_PI/2);

[UIView animateWithDuration:1.0 delay:0.0 options:kNilOptions animations:^{
    [mySuperUIImageView setTransform:finalPosition];
} completion:^(BOOL finished) {
    [mySuperUIImageView setTransform:CGAffineTransformIdentity];
}];