将UILabels从任何位置旋转到直立

时间:2011-06-30 21:44:50

标签: iphone objective-c ios

我有一个使用

旋转的标签
pieceBlack.transform = CGAffineTransformMakeRotation((M_PI * (180) / 180.0));

并且完美无缺,除了:

我在游戏过程中将此标签旋转到右侧或上下颠倒。我怎么说,“无论你处于什么角度,都要回到原状。”我想的可能就是:

int PreviousAngle = ?;
pieceBlack.transform = CGAffineTransformMakeRotation(degreesToRadian(0-PreviousAngle));

所以我猜我问的是你如何要求旋转角度。或者,也许有一种

pieceBlack.transform = CGAffineTransformMakeRotation(RotateToUpright);

3 个答案:

答案 0 :(得分:2)

据我记得,变换总是相对于直立位置(原始),所以0.0f?所以你可以pieceBlack.transform = CGAffineTransformIdentity

答案 1 :(得分:0)

我所做的是首先将(在我的情况下)视图置于“直线向上”方向。然后我使用CGAffineTransformMakeRotation创建了一些偏离视图。最后,我应用了身份变换将视图恢复到直接位置。

答案 2 :(得分:0)

您不想设置转换,您想修改它,

view.transform = CGAffineTransformRotate(view.transform, angle);

如果您需要保留旧的,请执行