将 UIView 坐标转换为横向

Posted

技术标签:

【中文标题】将 UIView 坐标转换为横向【英文标题】:Convert UIView coordinates to landscape orientation 【发布时间】:2011-09-17 12:37:14 【问题描述】:

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

我真的很困惑!

任何帮助表示赞赏。

【问题讨论】:

【参考方案1】:

您应该尽量不要混合纵向和横向。 尝试使用只允许横向的 UIViewController;定位标签会容易得多。

【讨论】:

【参考方案2】:

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

convertPoint:toView: 和 convertPoint:fromView:

【讨论】:

以上是关于将 UIView 坐标转换为横向的主要内容,如果未能解决你的问题,请参考以下文章

IOS-- UIView中的坐标转换

UIView中的坐标转换

iOS UIView中的坐标转换

iOS UIView中的坐标转换

iOS开发笔记--UIView中的坐标转换

屏幕坐标和当前窗口坐标如何转换???