【问题标题】:Keep text on an image readable while rotating the image旋转图像时保持图像上的文本可读
【发布时间】:2013-01-03 01:23:16
【问题描述】:

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

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

在父视图旋转时旋转标签的最佳方法是什么?

这是我现在正在尝试的,但它不能正确旋转......

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

【问题讨论】:

  • 您是否尝试过制作一个聚合视图,其中标签是图形轮子视图的子视图?

标签: objective-c cocoa-touch core-graphics uilabel


【解决方案1】:

大概您正在应用旋转变换来旋转轮子。如果标签是轮子视图的子视图,它们的中心被固定在轮子的正确位置(因为视图位于其父视图的中心),并且它们将与它一起移动。同时,对标签应用逆旋转变换。旋转围绕每个标签的中心进行。所以每个标签都保持在正确的位置并保持直立。

事后的想法 - 还要确保您没有在这些标签上使用自动布局。自动布局会中断视图转换。

【讨论】:

  • 谢谢,但我确实尝试过...我将添加代码向您展示我现在拥有的东西。这是设置文本转换的错误方法吗?
  • 是的。查看您自己的代码并考虑一下。假设新的变换是 30 度。现在您正在进行 30 度旋转变换并以另一种方式将其旋转 30 度。那是零度变换。所以你对标签什么也没做,它们随着轮子旋转——这正是你不想要的。按照我的建议去做 - 从您应用于车轮的变换中导出逆变换,并将其应用于每个标签。
  • 谢谢马特——这确实奏效了。我反转角度的代码是正确的,因为它是弧度,而不是度数。我做错的是使用 parent.transform 而不是 label.transform 错误地初始化下一个 textTransform...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多