彻底弄清 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)
上一篇 2022年10月8日 下午7:16
下一篇 2022年10月8日 下午7:36


相关推荐

  • Iterative (non-recursive) Quick Sort

    Iterative (non-recursive) Quick Sort

    2021年11月14日
    44
  • 什么是同步请求和异步请求?

    什么是同步请求和异步请求?一 同步 异步请求浏览器发送请求给服务器 其有同步请求和异步请求两种方式 1 同步请求什么叫同步请求呢 就是在发送一个请求之后 需要等待服务器响应返回 才能够发送下一个请求 之前学的请求是通过浏览器地址栏发送请求 这种方式就是属于同步请求 但是其有两个缺陷 请求必须要等待响应如果遇到请求阻塞 网络延迟 用户需要等待 这样用户体验效果不好 请求时会携带所有的信息比如说一个 form 表单 需要填入用户名 密码 手机号 等多个信息 如果其中有一个信息填写错了 请求失败 又要全部重新填写 会很

    2026年3月17日
    3
  • 敏捷开发与敏捷测试

    敏捷开发与敏捷测试是对于外部的 Bug 比如从 Beta 客户报告来的 没有被现有测试用例所覆盖 当产品的功能设计出现更改时 敏捷项目中功能设计的更改频繁 所涉及的测试用例也要相应地修改 使测试用例保持和现有的功能需求同步 3 3 根据项目不断补充 CommonSense 在项目进行过程中 测试人员需要不断积累经验 不断补充 完善各类目的 CommonSense 标准 例如 由 CTTS 项目总结出的 CommonSensef 标准 在以后的美国项目中要严格按照它来执行测试 保证以前出现过的失误在以后的项目

    2026年3月16日
    2
  • Java 迭代器Iterator的详解

    Java 迭代器Iterator的详解为了方便的处理集合中的元素 Java 中出现了一个对象 该对象提供了一些方法专门处理集合中的元素 例如删除和获取集合中的元素 该对象就叫做迭代器 Iterator 对 Collection 进行迭代的类 称其为迭代器 还是面向对象的思想 专业对象做专业的事情 迭代器就是专门取出集合元素的对象 但是该对象比较特殊 不能直接创建对象 通过 new 该对象是以内部类的形式存在于每个集合类的内部

    2026年3月20日
    2
  • 加密芯片硬件协处理器

    加密芯片硬件协处理器通俗来讲,硬件协处理器是CPU内部用于处理特定算法或逻辑运算的硬件电路模块,我们可以把他理解为一个特殊的加速器。硬件协处理器可以用于减轻系统微处理器的特定处理任务负担。例如,数学协处理器可以控制数字处理;图形协处理器可以处理视频绘制。Intelpentium微处理器就包括内置的数学协处理器。一个协处理器通过扩展指令集或提供配置寄存器来扩展内核处理功能。一个或多个协处理器可以通过协处理器接口与CPU内核相连。协处理器可以通过一组专门的、提供的接口的CPU指令来访问。对于加密芯片行业

    2022年6月25日
    33
  • 大数据平台展示可视化效果,echarts图表实战项目(源码50套)「建议收藏」

    大数据平台展示可视化效果,echarts图表实战项目(源码50套)「建议收藏」最近接了个任务需要用H5在前台两个大电视上做两页数据展示公司的产品数据,效果要高大上,充分展示咱们公司的实力,给各位来公司参观的大能们留下深刻的印象。还好之前接触过HTML5,所以第一时间想到就是echarts,这个框架对于数据展示尤其图表类处理的还是非常强大和炫酷的。说干就干,首先到官网上把框架下下来,各组件Demo和API都熟悉下,对于你想要的东西和效果心里有个底,就开始动工了。官网地址是:https://echarts.apache.org,里面的Demo都是代码和效果图文并貌,还可以在线修改

    2022年10月12日
    7

发表回复

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

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