同时旋转和移动 UIView 并设置其中心点

Posted

技术标签:

【中文标题】同时旋转和移动 UIView 并设置其中心点【英文标题】:Rotate and move UIView simultaneously and set its center point 【发布时间】:2011-12-19 13:51:13 【问题描述】:

我正在制作一个使用多个 UIView 来显示内容的游戏。

有 2 个 UIView。其中之一是地图;另一个是飞机。 飞机的视野是静态的。它不会移动、旋转、缩放等。 我想让地图在飞机下平移,同时旋转。每帧地图的原点(或中心点)都需要设置为平面的中心点。

我如何做到这一点?

我正在为此使用 CGAffineTransform,它工作正常,直到我离开地图后想在地图上转回来。

这是我现在正在做的事情:

CGAffineTransform oldTransformation = CGAffineTransformTranslate(CGAffineTransformIdentity, 0, frames);
oldTransformation = CGAffineTransformRotate(oldTransformation, rotation);
cityView.transform = oldTransformation;

任何帮助表示赞赏。

【问题讨论】:

你找到解决办法了吗? 【参考方案1】:

这篇博客here 讨论了使用CAAnimationGroup 同时应用多个动画(中心点、旋转和边界)。它包括一个示例应用程序,您可以在 github here 上获得它。 (注意:在 iPad 模拟器中运行应用程序)。

该项目中使用的动画结合了中心点的同时变化和视图的旋转。

希望这会有所帮助。

【讨论】:

以上是关于同时旋转和移动 UIView 并设置其中心点的主要内容,如果未能解决你的问题,请参考以下文章

旋转放置和移动视图 (UIView)

使用内部绘图旋转 UIView 的问题

移动带有子视图的 UIView

我们如何在 3D 空间中同时旋转 2 个 UIView 平面

在 UIView 内对 UITableView 设置约束

使用 CATransform3DMakeRotation 左右旋转 UIView