CALayer之anchorPoint分析
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分析相关推荐
- 详解CALayer的anchorPoint和position
CALayer CALayer属于QuartzCore框架,用于在iOS和Mac OS系统上可见元素的绘制,和属于UIKit框架的UIView的关系是,UIView默认会创建一个CALayer属性,用 ...
- iOS CALayer动画原理分析
一.引出问题 在开始分析原理之前,我们先来看一个问题: 我们都知道 UIView与 CALayer之间的关系,通俗的来说,UIView内部封装了一个 CALayer, 其中 CALayer负责展示UI ...
- iOS CALayer anchorPoint 的应用场景
背景 最近在看<ios核心动画高级技巧>,这本书的中文版本可以在iOS Core Animation: Advanced Techniques中文译本 这里找到,看到图形几何学这一章,其中 ...
- ios开发——使用CALayer和Core Animation做动画效果
一. CALayer (一). CALayer简介 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是UIView,其实UIV ...
- 彻底理解position与anchorPoint
引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与posi ...
- Position anchorPoint 深入
引言 相信初接触到CALayer的人都会遇到以下几个问题: 为什么修改anchorPoint会移动layer的位置? CALayer的position点是哪一点呢? anchorPoint与posi ...
- iOS_核心动画(二)
目 录: 一.Core Animation开发步骤 二.Core Animation的继承结构 三.CAAnimation常用的属性 四.CAPropertyAnimation(属性动画) 五.CAB ...
- iOS Core Animation 简明系列教程
iOS Core Animation 简明系列教程 看到无数的CA教程,都非常的难懂,各种事务各种图层关系看的人头大.自己就想用通俗的语言翻译给大家听,尽可能准确表达,如果哪里有问题,请您指出我会尽快 ...
- 【IOS开发进阶系列】动画专题
1 CALayer IOS SDK详解之CALayer(一) http://doc.okbase.net/Hello_Hwc/archive/123447.html 1.1 基本概念 1.1.1 CA ...
最新文章
- python 列表生成式
- CF1097D Makoto and a Blackboard(期望)
- C++ 引用通过代码例子理解
- G6 图可视化引擎——简介
- 学习笔记(53):Python实战编程-Checkbutton
- C#中读取“已注册的文件类型”的图标及读取指定文件图标的方法 (转)
- 【USACO1.1】Broken Necklace
- python的sorted用法
- 微信小程序微商城:开发者key获取
- davinci项目服务器无法,【工程管理】为达芬奇建一个项目管理服务器 多人协同调色...
- 智能家居APP设计规格
- 通过网址获得视频网站的视频信息包括优酷,土豆,56,酷6
- 几个Android云测试
- linux查询文件大小
- 机器学习笔记——逻辑斯蒂回归(Logistic)
- JS逆向——裁判文书网(详细图文步骤)
- tp交换机管理页面_TP-Link路由器作为无线交换机怎么设置【设置方法】
- 2020年汽车芯片行业深度报告-1
- 无线网卡插上电脑没反应的解决办法
- 将4G以上文件从iphone传到电脑中的方法
热门文章
- [小知识] 移动端设备号常见类型
- 有做过海康威视门禁对接的么?java版本的
- 怎么在html中加特殊符号,html中特殊符号
- 桌面计算机怎么设置声音,关于电脑自定义声音的设置
- 初识python——python的发展历程及python各个版本之间的区别,python的安装
- 天舟四号成功对接天和核心舱后向端口,北航人又立功了
- 用电脑怎下载拼多多上货助理 拼多多上货助理正版下载方法
- 使用Eclipse安装CloudSim
- 2023计算机毕业设计SSM最新选题之javaJava青年志愿者信息管理系统15925
- 向ftp服务器 写入文件失败,关于从FTp服务器取回文件写入数据表时提示:file not found(2)...