首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将CGPoint从UIView坐标系转换为CALayer坐标系

将CGPoint从UIView坐标系转换为CALayer坐标系可以通过以下方法实现:

代码语言:swift
复制
let viewPoint: CGPoint = // 需要转换的点的坐标
let layerPoint: CGPoint = // 转换后的点的坐标

// 将UIView坐标系的点转换为CALayer坐标系的点
layerPoint = view.layer.convert(viewPoint, from: view.superview)

在这个方法中,我们使用了UIView的layer属性来获取CALayer对象,然后调用CALayer的convert(_:from:)方法将UIView坐标系的点转换为CALayer坐标系的点。其中,第一个参数是需要转换的点的坐标,第二个参数是需要转换的点所在的父视图。

需要注意的是,这个方法只能在UIView的层级结构中使用,如果需要在其他层级结构中使用,需要先将其转换为UIView的坐标系再进行转换。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS动画-CALayer布局属性详解

的很多布局属性其实都来自于图层;UIView的布局属性包括:frame、bouns、center,分别对应了CALayer中frame、bounds、position。...下面的图示是锚点{0.5,0.5}改为了{0,0},我们在这里更容易看到position与anchorPoint之间的关系: ?...锚点动画.gif 三、视图与图层的坐标系 CALayer给不同坐标系之间的图层转换提供了一些工具类方法: - (CGPoint)convertPoint:(CGPoint)p fromLayer:(nullable...CALayer *)l; - (CGPoint)convertPoint:(CGPoint)p toLayer:(nullable CALayer *)l; - (CGRect)convertRect...view; 通过这些方法,我们可以把定义在一个图层(或视图)坐标系下的点或者矩形转换为另一个图层(或视图)坐标系下的点或者矩形;开发过程中我们通常操作的对象都是视图,所以下面以视图为例简单演示其用法:首先创建添加两个宽高都是

2.2K20

iOS动画-CALayer基础知识

6.中心点(position)与锚点(anchorPoint) 7.视图与图层的坐标系 一、理解视图与图层 UIView我们都非常熟悉, 但它其实是对于CALayer的一层封装,我们在创建UIView...时,其内部会自动创建CALayer图层对象(即UIView的关联图层),UIView调用drawRect:方法进行绘图,并且所有的内容绘制到自己的图层上,绘制完毕后,系统会将图层拷贝到屏幕上,于是就完成了...下面的图示是锚点{0.5,0.5}改为了{0,0},我们在这里更容易看到position与anchorPoint之间的关系: ?...锚点动画.gif 视图与图层的坐标系 CALayer给不同坐标系之间的图层转换提供了一些工具类方法: - (CGPoint)convertPoint:(CGPoint)p fromLayer:(nullable...view; 通过这些方法,我们可以把定义在一个图层(或视图)坐标系下的点或者矩形转换为另一个图层(或视图)坐标系下的点或者矩形;开发过程中我们通常操作的对象都是视图,所以下面以视图为例简单演示其用法:首先创建添加两个宽高都是

1.8K50

图层几何学 -- iOS Core Animation 系列二

坐标系 众所周知,一个图层的position依赖于父图层的bounds,如果父图层移动,所有子图层也会跟着移动。...CALayer也给我们提供了一些获取一个图层的绝对位置的方法,或者相对于另一图层的位置(而不是它当前父图层的位置): - (CGPoint)convertPoint:(CGPoint)point fromLayer...:(CALayer *)layer; - (CGPoint)convertPoint:(CGPoint)point toLayer:(CALayer *)layer; - (CGRect)convertRect...3.1 z坐标轴 和UIView的二维坐标不同,CALayer存在于一个三维空间中,它还提供了zPostion和anchorPointz属性。...4.1 -containsPoint: -containsPoint:接受一个在本图层坐标系下的CGPoint,如果这个点在图层frame范围内就返回YES.我们可以使用这个方法判断是哪个图层被触摸了。

56030

详解CALayer的anchorPoint和position

CALayer CALayer属于QuartzCore框架,用于在iOS和Mac OS系统上可见元素的绘制,和属于UIKit框架的UIView的关系是,UIView默认会创建一个CALayer属性...区别 UIView可以处理用户交互事件,而CALayer不行....每一个UIView内部都默认关联着一个CALayer, UIView有frame、bounds和center三个属性,CALayer也有类似的属性,分别为frame、bounds、position、anchorPoint...图1 图2 像UIView有superView与subView的概念一样,CALayer也有superLayer与layer的概念,前面说到的白纸和图中的矩形可以理解为layer,书桌和图中矩形以外的坐标系可以理解成...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站立刻删除。

77230

彻底理解position与anchorPoint

每一个UIView内部都默认关联着一个CALayer, UIView有frame、bounds和center三个属性,CALayer也有类似的属性,分别为frame、bounds、position、anchorPoint...先看看两者的原型,可知都是CGPoint点。...然后再来看下面两张图,注意图中分iOS与MacOS,因为两者的坐标系不相同,iOS使用左手坐标系,坐标原点在左上角,MacOS使用右手坐标系,原点在左下角,我们看iOS部分即可。 ?...图2 像UIView有superView与subView的概念一样,CALayer也有superLayer与layer的概念,前面说到的白纸和图中的矩形可以理解为layer,书桌和图中矩形以外的坐标系可以理解成...写成函数就是下面这样的: 1 2 3 4 5 - (void) setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{ CGRect

1.6K10

【IOS开发基础系列】UIView专题

convertPoint:fromView:     把一个点从一个坐标系转换到接收者的坐标系 - (CGPoint) convertPoint: (CGPoint)point fromView: (...返回值     一个转换到接收者坐标系的点 convertPoint:toView:     转换一个点接收者坐标系到给定的视图坐标系 - (CGPoint)convertPoint:(CGPoint...返回值     基于视图的坐标系转换过的点 convertRect:fromView:     转换一个矩形其他视图坐标系到接收者坐标系。...PS:CALayer不是UIResponder的子类,这说明CALayer无法响应事件,这也是UIViewCALayer的重要区别之一。         ...; // 像素pointview中转换到当前视图中,返回在当前视图中的像素值 - (CGPoint)convertPoint:(CGPoint)point fromView:(UIView*)view

35330

大前端开发中的“树” (下)

视图左上角为坐标原点 (0,0) CGPoint(x, y) 创建坐标点 CGSize(width, height) 表示视图宽度和高度 CGRect 结合了CGPoint 和 CGSize origin..., height) center 是指在父视图中的 CGPoint(x + width / 2, y + height / 2) iOS 坐标系统概念图 4.3 UIView UIView 负责接收触摸手势事件通过...事件响应链流程图 [2] 4.5 CALayer CALayerUIView 的关系是: [3] UIViewCALayer 提供内容,专门负责处理触摸等事件,参与响应链 CALayer...全权负责显示内容 (contents) 视图显示原理图 [3] 4.5.1 图层树 CALayer 在概念上与 UIView 类似,同样也是一些被层级关系树管理的矩形块,同样也可以包含一些内容(像图片,...我们可以通过图层按顺序叠放起来最终得到想要的图案。它的行为相对较独立,并且主要作用于创建它的 RenderObject ,因此在其他资料的树结构中常常不会提及它。

1.9K30

使用metpy台风数据插值转换为坐标系

https://www.heywhale.com/mw/project/631aa26a8e6d2ee0a86a162b 研究台风的同学们应该都接触过需要计算以台风为中心的方位角平均物理量,这就需要将笛卡尔坐标系中的数据插值到极坐标系...本项目就是利用metpy里calc这个计算模块,以ERA5数据为例,给定一个台风中心,选取层次为500 hPa,进行插值计算,数据笛卡尔坐标系插值为极坐标系,并对两个结果进行对比分析。...xr.open_dataset('/home/mw/input/nc_sample3575/data_example.nc') lat = ds.latitude lon = ds.longitude 极坐标系插值转换...这边以一个时次、单层为例,lon_t,lat_t是台风中心位置 uwnd = ds.u.sel(level= 500) lon_t = 128.9 lat_t = 20.0 #azimuths是极坐标系中的角度...linewidth=2.3,zorder=3) plt.colorbar(fig2,orientation='vertical',shrink=0.75) plt.show() 通过上面两张图来看,metpy的极坐标系插值与原坐标系保持一致

1.9K30

iOS动画小知识:定点缩放弹窗(利用锚点anchorPoint进行实现)包含完整demo

前言 iOS开发中常用的动画(定点缩放弹窗)的应用场景: 会员详情的右侧下拉操作菜单 浏览器的右侧下拉菜单 I 基础知识 (CALayer) 每一个UIView内部都默认关联着一个CALayer,...UIView有frame、bounds和center三个属性,CALayer也有类似的属性,分别为frame、bounds、position、anchorPoint。...anchorPoint点的值是用一种相对bounds的比例值来确定的,在白纸的左上角、右下角,anchorPoint分为为(0,0), (1, 1),也就是说anchorPoint是在单元坐标空间(同时也是左手坐标系...+ (void) setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{ CGRect oldFrame = view.frame...;隐藏的时候,动画左下脚往右上角收回 [MemberCardMenuView setAnchorPoint:CGPointMake(0.9f, 0.0f) forView:self];

1.5K20

iOS利用锚点实现定点缩放弹窗

) 每一个UIView内部都默认关联着一个CALayer, UIView有frame、bounds和center三个属性,CALayer也有类似的属性,分别为frame、bounds、position、...anchorPoint点的值是用一种相对bounds的比例值来确定的,在白纸的左上角、右下角,anchorPoint分为为(0,0), (1, 1),也就是说anchorPoint是在单元坐标空间(同时也是左手坐标系...+ (void) setAnchorPoint:(CGPoint)anchorpoint forView:(UIView *)view{ CGRect oldFrame = view.frame...再让阴影alpha由1到0,弹窗的scale由1到0(同样使用CABasicAnimation),动画完成后移除阴影和弹窗 */ - (void)expandView{ //展示的时候,动画右上角往左下脚延伸...;隐藏的时候,动画左下脚往右上角收回 [MemberCardMenuView setAnchorPoint:CGPointMake(0.9f, 0.0f) forView:self];

1.5K31

iOS 事件传递与视图响应链

HitTest会检测这个点击的点是不是发生在这个View上,如果是的话,就会去遍历这个View的subviews,直到找到最小的能够处理事件的view,如果整了一圈没找到能够处理的view,则返回自身然后sub...- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event; - (BOOL)pointInside:(CGPoint)point withEvent...具体实现 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { // 1.判断当前控件能否接收事件 if (self.userInteractionEnabled...判断点在不在当前控件 if ([self pointInside:point withEvent:event] == NO) {return nil;} // 3.后往前遍历自己的子控件...*childView = self.subviews[i]; // 把当前控件上的坐标系转换成子控件上的坐标系 CGPoint childP = [self convertPoint

80830

iOS开发CoreAnimation解读之一——初识CoreAnimation核心动画编程

UIViewAnimation动画的使用:http://my.oschina.net/u/2340880/blog/484457  UIView动画执行的另一种方式:http://my.oschina.net...简单来说,它使帮助我们图像读取成位图,通过硬件的处理,实现动画效果。文档中的一张图片十分形象的描述了CoreAnimation与UIKit框架的关系: ?...在CoreAnimation中,大部分的动画效果都是通过Layer层来实现的,通过CALayer,我们可以组织复杂的层级结构。         ...通过CALayer的如下属性,我们可以设置锚点,注意x,y的取值范围都是0~1,代表所占宽度和高度的比例: @property CGPoint anchorPoint; 四、Layer与View之间的关系...        Layer是专门用于辅助我们绘制图像的层,它使支持三维坐标系的绘制的,通过每个坐标点与转换矩阵的运算,来决定最后绘制的状态,并且,Layer可以更高帧率的绘制动画效果。

98830
领券