CGAffineTransformMakeRotation UILabel失真

时间:2011-11-16 08:26:11

标签: iphone ios core-graphics

我正在尝试将UILabel旋转45度。我将transform属性设置为CGAffineTransformMakeRotation(M_PI * 0.25)但是当我这样做时,UILabel就会消失。如果我将0.25更改为0.26,我可以看到UILabel的一瞥(见下文)

UILabel problem

旋转前的UILabel:UILabel with no rotation

代码:self.myLabel.transform = CGAffineTransformMakeRotation(M_PI * 0.26);

如果我错过了任何可能有用的信息,请告诉我们!

更新

似乎必须在应用旋转之前设置框架

2 个答案:

答案 0 :(得分:4)

您的代码应该可以正常工作,所以还有其他事情没有发布代码。我建议检查自动调整掩码以及可能正在操作变换的其他任何地方。从外观和描述来看,它几乎看起来像是通过3D旋转沿错误的轴旋转,导致您在零宽度/厚度的位置查看标签面,就像看着纸头的边缘一样

答案 1 :(得分:1)

问题的另一个解决方案可能是将UILabel嵌入到另一个视图中,并使用外部视图在屏幕上定位标签。

另一篇帖子提到了我看到UILabel中文本失真或消失的问题。他们的解决方案是将所有外部弹簧设置在UILabel上。这对我有用,但是我的标签没有正确定位在屏幕上,特别是在设备旋转期间。所以我认为将我的UILabel嵌入到容器视图中会让我使用容器视图来定位我的标签,只使用顶部和右侧弹簧设置,同时仍允许使用CGAffineTransformMakeRotation正确旋转UILabel。

希望这可以帮助那些也遇到这个问题的人。