anchorPoint:CALayer中心点,动画特效的中心点,取值区间[0.0, 1.0],默认为(0.5, 0.5);

position:CALayer中心点坐标;

frame.origin:由anchorPoint、position共同计算得出:

frame.origin.x = position.x - anchorPoint * bounds.size.width;

frame.origin.y = position.y - anchorPoint * bounds.size.height;

frame.size.width = bounds.size.width;

frame.size.height = bounds.size.height;

有些动画效果需要我们修改anchorPoint,比如绕着自身某条边旋转等。

当我们改变了anchorPoint,计算出的frame.origin也会随之改变,因此最终显示的图像就会发生偏移,这时就需要我们对position或frame做适当的修改。

例如:在屏幕上显示一个蓝色button

UIButton *btnBlue = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 100, 100)];

btnBlue.backgroundColor = [UIColor blueColor];

CGRect oldFrame = btnBlue.layer.frame;

修改anchorPoint:

CGPoint anchorPoint = CGPointMake(0.0, 0.5);

btnBlue.layer.anchorPoint = anchorPoint;

修改之后,btnBlue显示位置向右偏移。

解决办法:

1.修改position

btnBlue.layer.position = CGPointMake(btnBlue.layer.position.x - btnBlue.layer.frame.size.width * (0.5 - anchorPoint.x),

btnBlue.layer.position.y - btnBlue.layer.frame.size.height * (0.5 - anchorPoint.y);

2.直接修改frame

btnBlue.layer.frame = oldFrame.

这样,btnBlue就显示正常了。

CALayer之anchorPoint分析相关推荐

  1. 详解CALayer的anchorPoint和position

    CALayer CALayer属于QuartzCore框架,用于在iOS和Mac OS系统上可见元素的绘制,和属于UIKit框架的UIView的关系是,UIView默认会创建一个CALayer属性,用 ...

  2. iOS CALayer动画原理分析

    一.引出问题 在开始分析原理之前,我们先来看一个问题: 我们都知道 UIView与 CALayer之间的关系,通俗的来说,UIView内部封装了一个 CALayer, 其中 CALayer负责展示UI ...

  3. iOS CALayer anchorPoint 的应用场景

    背景 最近在看<ios核心动画高级技巧>,这本书的中文版本可以在iOS Core Animation: Advanced Techniques中文译本 这里找到,看到图形几何学这一章,其中 ...

  4. ios开发——使用CALayer和Core Animation做动画效果

    一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...

  5. 彻底理解position与anchorPoint

    引言 相信初接触到CALayer的人都会遇到以下几个问题:  为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与posi ...

  6. Position anchorPoint 深入

    引言 相信初接触到CALayer的人都会遇到以下几个问题:  为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与posi ...

  7. iOS_核心动画(二)

    目 录: 一.Core Animation开发步骤 二.Core Animation的继承结构 三.CAAnimation常用的属性 四.CAPropertyAnimation(属性动画) 五.CAB ...

  8. iOS Core Animation 简明系列教程

    iOS Core Animation 简明系列教程 看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大.自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽快 ...

  9. 【IOS开发进阶系列】动画专题

    1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hello_Hwc/archive/123447.html 1.1 基本概念 1.1.1 CA ...

最新文章

  1. python 列表生成式
  2. CF1097D Makoto and a Blackboard(期望)
  3. C++ 引用通过代码例子理解
  4. G6 图可视化引擎——简介
  5. 学习笔记(53):Python实战编程-Checkbutton
  6. C#中读取“已注册的文件类型”的图标及读取指定文件图标的方法 (转)
  7. 【USACO1.1】Broken Necklace
  8. python的sorted用法
  9. 微信小程序微商城:开发者key获取
  10. davinci项目服务器无法,【工程管理】为达芬奇建一个项目管理服务器 多人协同调色...
  11. 智能家居APP设计规格
  12. 通过网址获得视频网站的视频信息包括优酷,土豆,56,酷6
  13. 几个Android云测试
  14. linux查询文件大小
  15. 机器学习笔记——逻辑斯蒂回归(Logistic)
  16. JS逆向——裁判文书网(详细图文步骤)
  17. tp交换机管理页面_TP-Link路由器作为无线交换机怎么设置【设置方法】
  18. 2020年汽车芯片行业深度报告-1
  19. 无线网卡插上电脑没反应的解决办法
  20. 将4G以上文件从iphone传到电脑中的方法

热门文章

  1. [小知识] 移动端设备号常见类型
  2. 有做过海康威视门禁对接的么?java版本的
  3. 怎么在html中加特殊符号,html中特殊符号
  4. 桌面计算机怎么设置声音,关于电脑自定义声音的设置
  5. 初识python——python的发展历程及python各个版本之间的区别,python的安装
  6. 天舟四号成功对接天和核心舱后向端口,北航人又立功了
  7. 用电脑怎下载拼多多上货助理 拼多多上货助理正版下载方法
  8. 使用Eclipse安装CloudSim
  9. 2023计算机毕业设计SSM最新选题之javaJava青年志愿者信息管理系统15925
  10. 向ftp服务器 写入文件失败,关于从FTp服务器取回文件写入数据表时提示:file not found(2)...