CGPoint 相对于视图

Posted

技术标签:

【中文标题】CGPoint 相对于视图【英文标题】:CGPoint relative to view 【发布时间】:2010-12-04 10:51:26 【问题描述】:

考虑一个屏幕点 (CGPoint) 和一个视图 (UIView),它位于视图层次结构中的某个位置(它可以是其他视图的子视图)。

如何将点转换为相对于视图坐标的点?

【问题讨论】:

【参考方案1】:

首先,将点从屏幕坐标转换为主窗口的坐标:

UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];
CGPoint pointInWindowCoords = [mainWindow convertPoint:pointInScreenCoords fromWindow:nil];

其次,将点从窗口坐标转换为视图坐标:

CGPoint pointInViewCoords = [myView convertPoint:pointInWindowCoords fromView:mainWindow];

【讨论】:

希望我在几周前就知道 :) +1 -- 这完全救了我的培根,在我搞砸了自己的培根之后,结果是,重新实现了它。好的! :)

以上是关于CGPoint 相对于视图的主要内容,如果未能解决你的问题,请参考以下文章

找出子视图相对于视图的位置

深入浅出了解frame和bounds

如何相对于彼此定位 2 个视图?

如何获得相对于滚动视图超级视图的滚动视图子视图的中心点?

相对于堆栈视图高度约束 UIStackView 的子视图

相对于父视图的底部定位 UIView?