Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将UIImageView保留回原点位置_Ios_Objective C_Animation_Uiimageview_Rotation - Fatal编程技术网

Ios 将UIImageView保留回原点位置

Ios 将UIImageView保留回原点位置,ios,objective-c,animation,uiimageview,rotation,Ios,Objective C,Animation,Uiimageview,Rotation,我现在正在为iOS设备实现一个应用程序,因此在目标C中,我问如何在旋转后将UIImageView保持在原点位置 例如,我使用我的UIImageView如下: CGAffineTransform initialPosition = CGAffineTransformMakeRotation(0); CGAffineTransform finalPosition = CGAffineTransformMakeRotation(M_PI/2); [UIView beginAnimations: @"R

我现在正在为
iOS设备
实现一个
应用程序
,因此在
目标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;
当我再次使用它时,我希望它处于第一个原始位置,没有旋转。这容易吗

提前谢谢

是的。非常容易:

MySuperUIImageView.transform = CGAffineTransformIdentity;

事实上,有。由于将仿射变换应用于视图,因此可以通过设置应用单位变换矩阵的视图变换来重置应用于视图的所有变换:

注意:在Objective C中,约定是以大写字母开头类名,以小写字母开头实例

从iOS4开始,苹果建议使用基于块的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];
}];

谢谢你的回答。另一个可能短一些,但谢谢=)
[mySuperUIImageView setTransform:CGAffineTransformIdentity];
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];
}];