彻底弄清 anchorPoint 和 position「建议收藏」

彻底弄清 anchorPoint 和 position「建议收藏」最近在研读《iOSCoreAnimationAdvancedTechniques》这一本书,想系统地学习下关于CALayer、Transition、以及动画等知识点。大家可以在gitbook上面找到该书的翻译版本。传送门在读到图层几何学这一章的时候,了解到了两个概念:anchorPoint和position。之前一直把position当成是矩形的中心点,如同UIView的center属性(事实上,在不改变anchorPoint的前提下,它确实是图层的中心点),但..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

最近在研读《iOS Core Animation Advanced Techniques》这一本书,想系统地学习下关于 CALayer、Transition、以及动画等知识点。大家可以在 gitbook 上面找到该书的翻译版本。

传送门  

在读到图层几何学这一章的时候,了解到了两个概念:anchorPoint 和 position。之前一直把 position 当成是矩形的中心点,如同 UIView 的 center 属性(事实上,在不改变 anchorPoint 的前提下,它确实是图层的中心点),但当 anchorPoint 改变的时候,我一下子懵逼了,为什么 position 不会改变,为什么frame会改变,为什么图形要往某个特定方向移动,而使 anchorPoint 和 position 重合?什么鬼…

怀着一定要搞懂的心态,我去网上查询了很多帖子,有的看了也没懂,有的给了我很大启发。现在也想把自己的理解在这里分享一下:

说白了,position 是什么?其实就是图层(layer)在父图层(superLayer)中的位置,图层的 size 定下了,那么应该把它放在父图层的什么位置,不就是由 position 定的吗?此时,父图层就会告诉这个儿子:喂,小子,这个 position 就是你在我地盘上的位置,你啊,如果将来要做 transition 变换,默认是以这个点为基准的。

儿子:哦,那我到时候做旋转那肯定也绕着这个点转了。deimo(但是)… 我不想老是绕着我的肚脐眼转啊,一点也不刺激,“能不能绕着我的头转?” 儿子对它爸说。

父图层一听,好啊,你小子,有想法啊,“那行,绕着你的哪一点转都可以,不过,你必须还在我 给你的 position 位置转!你的 position 位置不能变!”

儿子想:那我只能挪挪我的 frame 咯,不然没法按照老子的要求转了。 于是,它把自己的 anchorPoint 点移到了 position 位置上,愉快地开始转了=。=

所以,总结一下,anchorPoint 是相对于自身的位置,而 position 是相对于父图层的,改变 anchorPoint 只是更改了图层自身旋转地位置,但始终还是要通过改变 frame 使 anchorPoint 和 position 重合,这样它老子才不会骂它?, 不知道这样的方式大家能不能看懂啊:)

好了,我的第一次简书分享也告一段落了。有什么问题大家一定!要!指出来!!!拜托了!

彻底弄清 anchorPoint 和 position「建议收藏」

改变 anchorPoint 前后对照图

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184468.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring boot vue跨域_vue怎么解决跨域问题

    spring boot vue跨域_vue怎么解决跨域问题一、什么是跨域在springboot+vue前后端分离项目中,请求资源的端口号,域名(ip地址)不同。二、跨域的解决方案1、springboot后端处理:在每个controller上加上@CrossOrigin注解或在controller的基类上添加@CrossOrigin注解,其他controller类加上@Controller即可。2、在vue前端进行处理:通过代理的方式访问后端接口。…

    2022年9月17日
    0
  • Word公式自动编号

    Word公式自动编号背景用 Word 写毕业论文 要插入公式 添加公式引用 如果手动操作 维护起来非常难受 本经验详细介绍如果自动维护更新这些公式编号 步骤首先 看一下效果图新建一个 1 3 的表格设置表格属性 比较简单 合在一起写 有多张截图 1 设置单元格边距为 0 2 所有单元格垂直居中 3 左右单元格 设置宽度为 1 厘米 4 中间单元格水平居中对齐 右边单元格水平右对齐

    2025年7月9日
    0
  • vim输入中文变为乱码

    vim输入中文变为乱码

    2021年8月25日
    53
  • phpproxy建立代理服务器_proxy设计模式

    phpproxy建立代理服务器_proxy设计模式代理,指的就是一个角色代表另一个角色采取行动,就象生活中,一个红酒厂商,是不会直接把红酒零售客户的,都是通过代理来完成他的销售业务。而客户,也不用为了喝红酒而到处找工厂,他只要找到厂商在当地的代理就行了,具体红酒工厂在那里,客户不用关心,代理会帮他处理。代理模式,就是给某一对象提供代理对象,并由代理对象控制具体对象的引用。代理模式涉及的角色:抽象主题角色,声明了代理主题和真实主题的公共…

    2025年6月26日
    0
  • SNZ Pool宣布加入Celer状态守卫者网络以及cBridge流动性桥接网络

    SNZ Pool宣布加入Celer状态守卫者网络以及cBridge流动性桥接网络PoS节点技术服务提供商SNZPool宣布加入Celer状态守卫者网络及CelercBridge流动性桥接网络。

    2022年6月2日
    39
  • Java实现两数之和「建议收藏」

    Java实现两数之和「建议收藏」给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。即:每个index上的数字只能用一次示例:给定nums=[2,7,11,15],target=9因为nums[0]+nums[1]=2+7=9所以返回[0,1]方法一:暴力法遍历每个元素x,并查找是否存在一个值与target…

    2022年6月14日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号