ios-anchorPoint、position理解

article/2025/10/22 23:48:03

anchorPoint(锚点)layer的一个属性,下面我们来看看其对view的影响,本文主要通过图片方式展现:

锚点单位坐标来描述也就是图层的相对坐标。在苹果文档中说明左下是(0,0),右上是(1,1),mac系统是这样,实际上:ios开发中图层左上角是{0, 0},右下角是{1, 1},取值范围不限。单位坐标的意思是指以视图长宽为单位来计算,坐标系展示如下



默认一个视图的锚点在(0.5,0.5)的位置,这也是我们使用transform属性时为什么会围绕视图中心点旋转的原因,下面我们将一个默认视图锚点改成(0,0):

    UIView *allView1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, leftW, topH)];allView1.backgroundColor = [UIColor orangeColor];allView1.layer.anchorPoint = CGPointMake(0,0);[self.view addSubview:allView1];

红色为原始视图,橘色为修改(0,0)锚点的视图,线单位宽度都是100:

橘色视图的origin由(100,100)->(100+50,100+25),朝右下移动了1/2视图的位置,同理(1,1)朝左上移动1/2视图的问题



    //锚点改成(0,0)后新位置计算方法CGPoint newOrigin;CGRect oldFrame = allView.frame;newOrigin.x = oldFrame.origin.x + oldFrame.size.width/2;newOrigin.y = oldFrame.origin.y + oldFrame.size.height/2;CGRect newFrame = allView1.frame;newFrame.origin = newOrigin;allView1.frame = newFrame;

由打印信息得出position为anchorPoint在superLayer中的坐标点,计算方式如下:

position.x = frame.origin.x + anchorPoint.x * bounds.size.width;  
position.y = frame.origin.y + anchorPoint.y * bounds.size.height;

当设置视图的frame属性,position点的位置(也就是position坐标)根据锚点(anchorPoint)的值来确定,而当设置图层的position属性的时候,bounds的位置(也就是frame的orgin坐标)会根据锚点(anchorPoint)来确定。

说起来比较复杂,实际上运行一下项目就知道了

这时候设置橘色视图逆时针旋转90°得到下图(由于此时锚点为左上角的点,所以围绕左上角旋转):




有时候有需求改变锚点但是要求frame不变,在改变锚点之后重新设置一下frame就可以了,如果还有不明白的直接下载测试工程




http://chatgpt.dhexx.cn/article/DSR0oQ06.shtml

相关文章

Anderson‘s pointer analysis

本文是垃圾文章,请直接学习其它资料 南京大学《软件分析》课程08(Pointer Analysis)https://www.cs.cmu.edu/~aldrich/courses/15-819O-13sp/resources/pointer.pdf 指针分析 指针分析是一类特殊的数据流问题,它是其它静态程序分析…

iOS围绕某点缩放或旋转的AnchorPoint的设定

经常会遇到需求,要求手势的缩放或者旋转操作,要求动作变化围绕某一个特定点,或者是两指的中心点,或者是某一个点。 这个问题首先要清晰的知道,iOS各个view的层次关系。特别是,要清除的知道,当前…

彻底理解CALayer的position与anchorPoint

引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与position有什么关系? 我也迷惑过,找过网上的教程,大部分都是复制粘…

position和anchorPoint

本人录制技术视频地址: https://edu.csdn.net/lecturer/1899 欢迎观看。 一、理论概述 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) prop…

Ant Design - Anchor

Anchor锚点 此组件的属性有以下几点: 现在给出一份例子 其他属性都很简单就不多说了,主要我遇到的麻烦是 getContainer 属性 锚点是默认body滚动的,所以如果你滚动的区域是body就会看到锚点的小蓝点是会随内容滚动的,但是如果你…

Anchor Point

On default, CCNode’s anchor point is (0, 0), which is at the left-bottom point. CCSprite’s anchor point is (0.5, 0.5), which is at the center. 如果你把一个CCSprite作为child加入到CCNode中,CCNode的anchor point不会对sprite的位置有影响,…

【Cocos2d-x 3.0学习笔记】 AnchorPoint 和Position 关系

先不多说,上两张图片: 解释一下上面图片的意思: 描点就是图片中红点的位置。setAnchorPoint的取值范围0~1,距离设置的是一张图片 setAnchorPoint(Point(0,0))表示在图片左下角, setAnchorPoint(Point(1,1))表示在图片…

iOS开发之layer.frame,layer.anchorPoint,layer.position对frame的影响

最近遇到相关的问题,所以就将这三个属性值,进行了分析和研究,话不多说,直接上代码了,详细的文字描述都在代码中,可以自行查看。 之前还写了一篇文章,也可以同时查看一下: iOS开发之…

anchorPoint

OS开发UI篇—CAlayer层的属性 一、position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint property CGPoint position; 用来设置CALayer在父层中的位置 以父层的左上角为原点(0, 0) property CGPoint anchorPoint; 称为“定位点”、“…

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

文章目录 前言I 基础知识 (CALayer)1.1 anchorPoint1.2 positionII iOS开发中常用的动画(定点缩放弹窗)2.1 核心代码2.2 完整demo源码see also前言 iOS开发中常用的动画(定点缩放弹窗)的应用场景: 会员详情的右侧下拉操作菜单 浏览器的右侧下拉菜单

UIView的bounds、frame、center/position、anchorPoint的关系

视图的frame,bounds和center属性仅仅是存取方法,当操纵视图的frame,实际上是在改变位于视图下方CALayer的frame,不能够独立于图层之外改变视图的frame。 对于视图或者图层来说,frame并不是一个非常清晰的属性&#xff…

彻底理解position与anchorPoint

原文 http://www.cnblogs.com/benbenzhu/p/3615516.html 引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与position有什么关系? 我也迷惑过&…

彻底弄清 anchorPoint 和 position

最近在研读《iOS Core Animation Advanced Techniques》这一本书,想系统地学习下关于 CALayer、Transition、以及动画等知识点。大家可以在 gitbook 上面找到该书的翻译版本。 传送门 在读到图层几何学这一章的时候,了解到了两个概念:anc…

Cocos2dx学习笔记9:cocos2dx锚点(Anchor Point)

锚点(AnchorPoint)是相对坐标,通常用来定义物体内部的点,在cocos2dx中,一般都是以加载精灵来实现游戏元素的表现,而精灵一般都是对应的一张图片资源。 我们在设置精灵位置的时候,要设置精灵中的锚点来和我们的坐标点相…

Anchorpoints学习笔记:

Anchor Detr学习笔记: 文章目录 Anchor Detr学习笔记:1.首先介绍下什么叫锚点(Anchor point)2.再来介绍下什么叫DETR3.Anchor Detr 1.首先介绍下什么叫锚点(Anchor point) ​   Anchor point就类似一张钉…

数学篇(三)向量的基本运算

1.平面向量 1.1平面向量的加法运算 两个向量,; 向量满足四边形法则; 1.2平面向量的乘法运算 两个向量,; 向量乘表示为 ; 相比于向量加运算,向量乘运算要复杂点,很难看明白向量乘的几何意…

2. 数据类型、向量、向量索引、向量修改、向量运算

b站课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新,但是要花钱,我花99元😢😢买了,感觉不错):https://ke.qq.com/course/3707827#term_id103855009 &a…

matlab 向量的基本运算

本文主要参考:王沫然编著的MATLAB与科学计算(第2版) 博客文章:点击打开链接 1、向量生成 1.1、直接输入 1.2、 xx0:step:xn 1.3、线性等分向量—linespace 1.4、对数等分向量—logspace 2、向量运算 21、加(减&#x…

向量复习(一):定义、求解、四则运算、点积和叉积

向量复习(一) 1. 向量的定义2. 向量的表示3. 向量的求解4. 向量的四则运算4.1 加法4.2 减法4.3 乘法和除法 5. 点积和叉积5.1 点积5.2 叉积 6. 模的求解7. 附录:代码8. 免责声明 首先,我们先来复习一下二维空间几何求交涉及的向量…

向量的基本运算专题

关于向量 高中数学必修 4 4 4说: 几何向量是线性空间中有大小与方向的量。 放图理解一下: 如上图所示,向量可以形象的用一根箭头表示。箭头所指代表向量的方向,线段的长度代表向量的大小。 在 O I OI OI中,我们简化了一下向量的…