将UIView坐标转换为横向

时间:2011-09-17 12:37:14

标签: objective-c ios uiview translation landscape

我屏幕上有一个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);

我对此感到很困惑!

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

你应该尽量不要混合肖像和风景 尝试使用仅允许横向的UIViewController;定位标签会更容易。

答案 1 :(得分:0)

UIView类有两种方法可以将点从一个视图转换为另一个视图。这些方法考虑了视图转换。

convertPoint:toView:convertPoint:fromView: