自动旋转和 UIImageView 动画的问题

Posted

技术标签:

【中文标题】自动旋转和 UIImageView 动画的问题【英文标题】:Problems with auto-rotation and UIImageView animations 【发布时间】:2010-11-25 15:37:55 【问题描述】:

我定期将 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];

如果我把我的动画拿出来,那么一切都会按我的预期进行。如果我不旋转我的设备,这个旋转代码似乎可以正常工作。

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

【问题讨论】:

【参考方案1】:

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

希望这对某人有所帮助。

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于自动旋转和 UIImageView 动画的问题的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 的动画旋转变化

UITableViewCell 内的 UIImageView 旋转动画

动画旋转UIImageView

为啥旋转 UIImageView 会影响其他 UI 元素?

在 tableview 单元格中将图像设置为 UIImageView 会使滚动和旋转变慢

在 UIScrollView 问题中旋转 UIImageView