Objective c 旋转图像时,使图像上的文本保持可读

Objective c 旋转图像时,使图像上的文本保持可读,objective-c,cocoa-touch,core-graphics,uilabel,Objective C,Cocoa Touch,Core Graphics,Uilabel,我有一个像轮子一样的图像视图。此视图检测每个彩色部分上的触摸事件 我遇到的问题是,当我旋转这个轮子时,视图顶部的UILabels也需要旋转,以便文本仍然是水平的,并且人类可读 旋转父视图时,旋转标签的最佳方式是什么 这是我正在尝试的,它没有正确旋转 CGAffineTransform textTransform = CGAffineTransformRotate(newTransform, newAngle * -1); 假设您正在应用旋转变换来旋转车轮。如果标签是控制盘视图的子视图,则标签

我有一个像轮子一样的图像视图。此视图检测每个彩色部分上的触摸事件

我遇到的问题是,当我旋转这个轮子时,视图顶部的
UILabel
s也需要旋转,以便文本仍然是水平的,并且人类可读

旋转父视图时,旋转标签的最佳方式是什么

这是我正在尝试的,它没有正确旋转

CGAffineTransform textTransform = CGAffineTransformRotate(newTransform, newAngle * -1);

假设您正在应用旋转变换来旋转车轮。如果标签是控制盘视图的子视图,则标签的中心将固定在控制盘的正确位置(因为视图位于其superview的中心),标签将随控制盘一起移动。同时,对标签应用反向旋转变换。旋转围绕每个标签的中心进行。因此,每个标签都保持在正确的位置并保持竖直


事后考虑-还要确保您没有在这些标签上使用autolayout。“自动布局”会打断视图转换。

您是否尝试过在标签是图形控制盘视图的子视图的情况下创建聚合视图?谢谢,但我确实尝试过。。。我将添加代码以向您展示我现在拥有的内容。这是设置文本转换的错误方法吗?是。看看你自己的代码,好好想想。假设新变换为30度。现在进行30度旋转变换,并将其以另一种方式旋转30度。这是一个零度变换。所以你对标签什么都不做,它们随着轮子旋转——这正是你不想要的。按照我的建议做-从应用于轮子的变换中导出逆变换,并将其应用于每个标签。谢谢马特-这确实起到了作用。我反转角度的代码是正确的,因为它是弧度,而不是度。我做错的是错误地使用parent.transform而不是label.transform初始化下一个textTransform。。。