详解iOS开发中frame和Bounds之间的区别.doc

详解iOS开发中frame和Bounds之间的区别.doc

ID:57661928

大小:331.50 KB

页数:7页

时间:2020-08-31

详解iOS开发中frame和Bounds之间的区别.doc_第1页
详解iOS开发中frame和Bounds之间的区别.doc_第2页
详解iOS开发中frame和Bounds之间的区别.doc_第3页
详解iOS开发中frame和Bounds之间的区别.doc_第4页
详解iOS开发中frame和Bounds之间的区别.doc_第5页
资源描述:

《详解iOS开发中frame和Bounds之间的区别.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、详解iOS开发中frame和Bounds之间的区别 本文适合阅读对象:对本技术不理解,想去深入了解的人  前言  最近和大家交流的时候发现很多初学者,当然也有一些有经验的iOS开发者对view的frame和bounds了解的都不是很透彻;尤其是bounds很多朋友都糊了,bounds确实比较难理解,今天就给大家说说frame和bounds。  frame  frame是每个view必备的属性,代表的是当前视图的位置和大小,没有设置他,当前视图是看不到的。位置需要有参照物才能确定,数学中我们用坐标

2、系来确定坐标系中的某个点的位置,iOS中有他特有的坐标系,如下图:iOS坐标系  • 在iOS坐标系中以左上角为坐标原点,往右为X正方向,往下是Y正方向  • frame中的位置是以父视图的坐标系为标准来确定当前视图的位置  • 同样的默认情况下,本视图的左上角就是子视图的坐标原点  • 更改frame中位置,则当前视图的位置会发生改变  • 更改frame的大小,则当前视图以当前视图的左上角为基准的进行大小的修改  bounds  bounds是每个View都有的属性,这个属性我们一般不进行设

3、置,他同样代表位置和大小;每个视图都有自己的坐标系,且这个坐标系默认以自身的左上角为坐标原点,所有子视图以这个坐标系的原点为基准点。bounds的位置代表的是子视图看待当前视图左上角的位置;bounds的大小代表当前视图的大小;  • 更改bounds中的位置对于当前视图没有影响,相当于更改了当前视图的坐标系,对于子视图来说当前视图的左上角已经不再是(0,0),而是改变后的坐标,坐标系改了,那么所有子视图的位置也会跟着改变  • 更改bounds的大小,bounds的大小代表当前视图的长和宽,修

4、改长宽后,中心点继续保持不变,长宽进行改变;通过bounds修改长宽看起来就像是以中心点为基准点对长宽两边同时进行缩放;  frame和bounds  有如下图:iOSbounds    ViewA是最顶层视图,因此他的信息如下:frameorigin:0,0size:550*400  boundsorigin:0,0size550*400  因为是ViewA是顶层视图,所以其实相当于覆盖在框架上,因此位置从父视图的(0,0)开始,大小为550*400默认情况下,本视图的坐标系是没有发生改变的即

5、当前视图(viewA)的左上角就是所有子视图的原点,大小就是当前视图的大小.  ViewB是ViewA的子视图,因此他的信息如下:frameorigin:200,100size:200*250  boundsorigin:0,0size:200*250  因为ViewB是ViewA的子视图,所以ViewB的frame位置需要以ViewA的左上角为参照,因此位置为(200,100),大小为200*250bounds在默认情况下本视图的坐标系是没有发生改变的即当前视图(viewB)的左上角就是当前视

6、图所有子视图的原点.  上面这种是普通的情况,也就是没有更改bounds的时候,下面我们来看更改bounds的例子,如下图:iOSbounds    在上一个例子的基础上,我们更改了viewA的bounds后,viewB看待ViewA的左上角就已经发生改变了;这个时候我们看待ViewA的左上角就不是坐标原点了,而是我们通过bounds设置后的坐标,如图也就是(0,100);在ViewB的frame没有保存不变的基础上,我们ViewB的位置向上移动了100  在第一例的基础上,更改了bounds中

7、X后,效果图如下:iOSbounds3  总结  1、frame不管对于位置还是大小,改变的都是自己本身  2、frame的位置是以父视图的坐标系为参照,从而确定当前视图在父视图中的位置  3、frame的大小改变时,当前视图的左上角位置不会发生改变,只是大小发生改变  1、bounds改变位置时,改变的是子视图的位置,自身没有影响;其实就是改变了本身的坐标系原点,默认本身坐标系的原点是左上角  2、bounds的大小改变时,当前视图的中心点不会发生改变,当前视图的大小发生改变,看起来效果就像缩

8、放一样。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。