2019独角兽企业重金招聘Python工程师标准>>>

主要说关于layer的anchorPoint,图形变换的坐标原点

layer与view是一起的,正常情况下anchorPoint的值是(0.5, 0.5),也就是layer的正中央,如果想把坐标原点变成现在layer的左上角,如果仅仅设置anchorPoint为(0,0),这样的结果是layer的左上角变到了原来的正中央(也就是改变了原来layer的位置position),那么图形的变换就不是原来layer的左上角了,而是原来的正中央,其实就是变换的实际物理点没有变,只是逻辑上的值改了,此时还需要设置下layer的position为(0,0),这样就可以把layer再拉回和原来的位置一样,而且变换的坐标原点变成原来的左上角。

因为: 1)anchorPoint只是逻辑点,不是实际的物理显示点

2)改变layer的anchorPoint的时候,也会改变layer的position,也就是改变了物理显示点,所以当设置anchorPoint为(0,0)的时候,坐标的变换点确实变成了layer的左上角,但是它所占据的物理显示点还是原来的layer的正中央,所以就把物理显示点(position)变到了原来的正中央的位置,也就是(width/2.f, height/2.f),所以必须再设置下postion的值是(0,0),就可以再把layer设置回最开始原来的位置。

有点绕,需要多读几遍。

转载于:https://my.oschina.net/u/913344/blog/692794

UIView CALayer相关推荐

  1. UIView 绘制渲染机制

    #前言 APP页面优化对小编来说一直是难题,最近一直在不断的学习和总结 ,发现APP页面优化说到底离不开view的绘制和渲染机制.网上有很多精彩的博客,小编借鉴之前N多大牛研究成果,同时结合自己遇到的 ...

  2. CFRunLoopRef 的内部逻辑(向 ibireme学习)

    据苹果在文档里的说明,RunLoop 内部的逻辑大致如下: /// 用DefaultMode启动 void CFRunLoopRun(void) {CFRunLoopRunSpecific(CFRun ...

  3. YYCache 源码学习(一):YYMemoryCache

    其实最近是在重新熟练Swift的使用,我想出了一个比较实用的方法,那就是一边看OC的项目,看懂之后用Swift实现一遍.这样既学习了优秀的源码又练习了Swift,一举两得. 之前看过几篇文章是剖析YY ...

  4. ios Runloop

    一.概念:一个Runloop就是一个事件处理的循环,用来不停的调度工作和处理输入事件,使用runloop的目的是让你的线程在有工作的时候处于工作状态,没有工作的时候处于休眠状态. 一般来讲,一个线程一 ...

  5. 深入理解RunLoop(转载)

    RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理.之后会介绍一下在 iOS 中,苹果是如何 ...

  6. ios 的touch事件分析

    IOS之触摸事件和手势 13.1 事件概述 13.2 触摸事件 13.3 手势 13.1 事件概述 事件是当用户手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象. 系统将事件按照特定的路径传 ...

  7. UI渲染回顾简单笔记

    UI渲染的简单过程: CPU,GPU,显示器协同工作,CPU 中计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等,然后将计算结果提交给GPU,由 GPU 进行变换.合成.渲染.随后 GPU ...

  8. iOS底层原理探究-Runloop

    Runloop 1. 概述 一般来说,一个线程只能执行一个任务,执行完就会退出,如果我们需要一种机制,让线程能随时处理时间但并不退出,那么 RunLoop 就是这样的一个机制.Runloop是事件接收 ...

  9. 深入理解RunLoop

    RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理.之后会介绍一下在 iOS 中,苹果是如何 ...

最新文章

  1. typora背景变黑
  2. kafka之四:Kafka集群搭建
  3. 企业级java springcloud b2bc商城系统开源源码二次开发-hystrix 请求缓存
  4. 线程之间通信 等待(wait)和通知(notify)
  5. gan怎么输入一维数据_时空序列预测模型GAN+LSTM
  6. 向量二次规划matlab,MATLAB中使用Opti Toolbox的混合整数二次规划
  7. 人类一败涂地电脑版_《漫威复仇者联盟》帧数对比丨PS4《人类一败涂地》新地图上线...
  8. Linux基础知识之包管理工具
  9. 服务器查看数据库日志文件,服务器数据库查看日志文件
  10. iOS 如何找到或生成 .dSYM 文件
  11. Android编程怎么打开,安卓手机如何开启开发者模式?简单三步骤教你解决!
  12. 微信第三方平台授权流程- java
  13. 美之图(meizitu)apk实战分析学习
  14. [转载]从春招到秋招,一个本科生的求职之路。
  15. js时间戳转时间(年-月-日 时:分:秒)
  16. 王者荣耀扫码登录源码
  17. 京东2019春招编程题
  18. ui设计能干一辈子吗
  19. Echarts中国地图的显示
  20. 单周期CPU,多周期CPU

热门文章

  1. 牛津临床和实验室调查手册 Oxford Handbook of Clinical and Laboratory Investigation
  2. 2021-11-14Collection
  3. 第14天学习Java的笔记(成员变量和局部变量)
  4. matlab clabel函数用法,CLabel函数说明
  5. zeekooper集群搭建_How to do - ZooKeeper集群搭建(我见过最详细的完整教学)
  6. zeekooper集群搭建_Zookeeper与Kafka集群搭建完整教程
  7. springboot项目文档源码_基于SpringBoot和Vue的企业级中后台项目(附源码)
  8. 编程语言学习--C语言学习资料
  9. EM算法matlab和Java实现
  10. 什么是latex科技排版系统,有对比word有何不同?