将UIView坐标转换为横向



我在屏幕上有一个UILabel,它目前是纵向的。然而,我在前一层中渲染了一个3D场景,无论如何都呈现为景观。我怎样才能把标签的点设为(0,0)让它在(0,0)处可见;就像在风景里一样。我想它需要旋转90度,然后让轴倒转。

我写了一些代码,但是没有像我希望的那样工作。

control.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI/2);
CGRect newFrame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y, control.frame.size.width, control.frame.size.height);
newFrame.origin.y = 320 - (newFrame.origin.y - control.frame.size.width);
//invert the x and y axis
CGFloat x1 = newFrame.origin.y;
CGFloat y1 = newFrame.origin.x;
CGFloat w1 = newFrame.size.width;
CGFloat h1 = newFrame.size.height;
control.frame = CGRectMake(x1, y1, w1, h1);

我真的很困惑!

感谢您的帮助。

你应该尽量不要把纵向和横向混在一起。
尝试使用一个只允许横向的UIViewController;这样定位标签就容易多了。

UIView类有两个方法将点从一个视图转换到另一个视图。这些方法考虑了视图的转换。

convertPoint:要查看:和convertPoint: fromView:

最新更新