自动旋转和UIImageView动画的问题

时间:2010-11-25 15:37:56

标签: iphone objective-c animation ios uiimageview

我定期将UIImageView旋转到位。我的视图非常基本,是UITabBar视图集内部的视图。如果我在旋转动画时碰巧旋转我的iPad,那么我的图像会变得歪斜。我已经在我的xib文件中检查了我能想到的所有图像,自动调整完全关闭,我不会在父视图上自动调整子视图。

这是我的动画代码:

            [UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:0.5];
            [UIView setAnimationDelay:0.0];
            transform = CGAffineTransformMakeRotation(convertToRadian(myDegrees));
            myImage.transform = transform;  
            [UIView commitAnimations];

如果我将动画取出,那么一切都按照我的预期运作。如果我不旋转设备,此旋转代码似乎正常工作。

如何防止内置旋转动画改变动画并扭曲图像?

2 个答案:

答案 0 :(得分:0)

经过多次不同的尝试之后,我最终在这里做的是添加一个清晰的视图,其中包含我的旋转图像,并在界面构建器中将“自动调整大小子视图”设置为关闭。您也可以根据需要在代码中执行此操作。我不得不添加UIView占位符,因为包含我的旋转图像的超级视图需要在旋转时自动调整其他视图对象的大小,但这修复了由于动画定向更改同时动画手动旋转而导致的图像时髦偏斜到位。

希望这有助于某人。

答案 1 :(得分:0)

坐标系变了。我也想出了这么多......以为我有一个错误。如果保存CG ... GState,则可以恢复到最初使用的坐标系。这是在Deitel和Deitel的书中。我刚发现它。想把它发布给任何想看的人。

你有一个聪明的伎俩!如果这不起作用,我可能会使用它。