将 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 坐标转换为横向的主要内容,如果未能解决你的问题,请参考以下文章