我现在正在为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}}
当我重新使用它时,我希望它处于第一个原始位置,没有旋转。是否可以轻松实现?
提前致谢!
答案 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];
}];