iOS 中的frame,bounds,center,transform关联

摘要:
使改变1.当视图的框架被更改时。当大小被更改时,其边框的宽度和高度将被更改为与框架大小一致,并且层的位置可能会被更改。2.当视图的边界改变时。当大小改变时,帧的原点可能会改变(取决于层的锚点)。图层的位置不会改变。

这里有一篇好文章 http://www.winddisk.com/2012/06/07/transform/

先看几个知识点,UIView 的frame,bounds,center,transform属性,CAlayer的position,anchorPoint,transform.

1.当一个view的frame被更改时

a.当更改size时,它的bounds的width和height会被更改为与frame的size一致,但是bounds的origin不会被更改。view的center,layer的position可能会被更改。

b.当更改origin时,对bounds属性无影响。view的center,layer的position可能会被更改。

2.当一个view的bounds被更改时

a.当更改size时,frame的width和size会改为同bounds的size一致,frame的origin有可能更改(取决于layer的anchorPoint)。view的center,layer的position可能会被更改不会更改。

b。当更改origin时,frame无影响,view的center,layer的position不会更改。

3.当view的center更改时

frame的origin会更改,layer的position会更改。

4.当一个view的transform被更改了,即不为CGAffineTransformIdentity。

frame属性可能会更改,view的bounds,center不会变,layer的position不会变。这个很重要,这样保持了在transform后,view的frame虽然改变了,但是内部参考系是不变的,可以继续进行其他变换,只要不更改frame或center或layer的position。

总结一下,对于一个view,要确定显示样式,最重要的有2个参数,一个是大小,一个是锚点。大小由size来反映;锚点由anchorPoint和position来反映,其中Position指的是锚点在父节点中的坐标值,而anchorPoint含有锚点在本节点中的相对位置。我的理解是,一个view想要确定位置和大小,首先需要position参数,之后根据archorPoint(作用就是确定position在view中的位置)和 size (图片大小)来绘制view。锚点是各种transform以及bounds的size变换的参考点。

免责声明:文章转载自《iOS 中的frame,bounds,center,transform关联》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MVC原生解析引擎aspx页面,智能提示好像还依赖于web.config中compilation节点下的assemblies列表Extjs使用 RestfulWebApi +Token验证小结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

CSS图片垂直居中方法

让div里面的多行文本垂直居中的方法: div{height:100px;100px;border:solid 1px red;text-align:center; display:table-cell;vertical-align:middle} 下面是网上好不容易找的多种办法: 看到问此问题的很多,所以花点时间整理下,欢迎大家提意见,做补充修改,谢谢...

js实现弹窗居中

在一些页面中,我们总会遇到一些弹窗不居中的时候,还要根据浏览器的大小来调整弹窗的弹出位置, 之前我也遇到这样的问题,现在我把我知道的呈现给大家 css样式  .windowBox{    500px; } .mid-tanBox{    position: fixed;  top: 50%;  left: 50%;    margin-left: -250...

小程序 大转盘 抽奖 canvas animation

项目需求运用到大转盘 可设置概率 可直接自定义结果 效果如下  ​ 两种方法及结合法 一 通过canvas 实现 但是因为定时器原因 手机端卡顿严重 故而最终使用了方法二 但也是该记录下 学习canvas 二 通过小程序Api animation完成完美解决卡顿问题 更精确定位 有样式缺陷 css无法解决样式 自动分配问题 故结合一二两种方法 出现第三种...

前端开发中常遇到的浏览器兼容问题小结

1. 默认的内外边距不同 问题:各个浏览器默认的内外边距不同 解决:*{margin:0;padding:0;} 2. 水平居中的问题 问题:设置 text-align: center;  ie6-7文本居中,嵌套的块元素也会居中,ff /opera /safari /ie8文本会居中,嵌套块不会居中 解决:块元素设置 1、margin-left:auto...

【实战HTML5与CSS3 第二篇】绚丽的快速导航!

目录 【实战HTML5与CSS3 第一篇】初探水深,美丽的导航,绚丽的图片爆炸!! 【实战HTML5与CSS3 第二篇】绚丽的快速导航! 【实战HTML5与CSS3 第三篇】我第一个HTML5网页诞生了(提供源码) 前言 今天9点就起来了,因为下午出去有个聚会,所以就早点起来进行,否则这个进度有点吃紧啊,昨天初略的完成了导航以及爆炸的图片,这里来回顾下:...

在HTML5中,用getCurrentPosition()获取用户的当前位置

转:https://blog.csdn.net/xiaoxia188/article/details/84703576 getCurrentPosition(successCallback, errorCallback,PositionOptions);successCallback: 表示获取到的用户数据位置。该对象包含三个属性:coords、addre...