我创建了一个简单的应用程序,顶部有一个分段控件。当我单击控件的两个部分之一时,UIImageView 开始旋转。我连接了一个重置按钮以将其转换设置为 CGAffineTransformIdentity。
当通过来回切换段来第二次调用执行 View 旋转动画的方法时,会出现问题。点击重置只会删除最近的动画。我必须第二次切换片段才能让动画完全重置并停止。
当我选择段以旋转 UIImageView 时调用以下代码,当我在段之间单击时显然会调用第二次。
// Begin the animation block and set its name
[UIView beginAnimations:@"Rotate Animation" context:nil];
// Set the duration of the animation in seconds (floating point value)
[UIView setAnimationDuration:0.5];
// Set the number of times the animation will repeat (NSIntegerMax setting would repeat indefinately) (floating point value)
[UIView setAnimationRepeatCount:NSIntegerMax];
// Set the animation to auto-reverse (complete the animation in one direction and then do it backwards)
[UIView setAnimationRepeatAutoreverses:YES];
// Animation curve dictates the speed over time of an animation (UIViewAnimationCurveEaseIn, UIViewAnimationCurveEaseOut, UIViewAnimationCurveEaseInOut, UIViewAnimationCurveLinear)
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
// Changes the imageViews transform property to rotate the view using CGAffineTransformRotate
// CGAffineTransformRotate(transformToStartFrom, angleToRotateInRadians)
// Starting transform property can be set to CGAffineTransformIdentity to start from views original transform state
// This can also be done using CGAffineTransformMakeRotation(angleInRadians) to start from the IdentityTransform without implicitly stating so
self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, degreesToRadians(90));
[UIView commitAnimations];
重置按钮调用此代码 -
self.imageView.transform = CGAffineTransformIdentity;
最佳答案
试试这个
[UIView animateWithDuration:0.2 animations:^() {
self.imageView.transform = CGAffineTransformIdentity;
}];
关于ios - CGAffineTransformIdentity 在多次转换后不重置 UIImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847843/