作者: boyXiong
源地址: http://blog.youkuaiyun.com/boyxiong/article/details/49151279
简单的说
frame
指的是这个
view
在它
superview
的坐标系的坐标和大小.
bounds
指这个
view
在它自己坐标系的坐标和大小
看官方的解释图片
通俗的说整个APP相当于一栋房子,而frame
相当于窗户,窗户的位置是相对于墙壁来说的,但是Bounds
相当于窗户里面要显示什么内容的位置
注意: 每个新建的View
的bounds
默认的 ( x , y )
都是 ( 0 , 0 )
但是:如果是有导航条,且默认的控制器的UIView
有子控件是继承UIScrollView
的会在调用了viewDidLayoutSubviews
这个方法中默认给这些子控件的内边距的顶部top增加导航条的高度也就是64
经过代码测试的出的结果:
结果表明:很明显的Bounds
的 y
值和内边距的 top
值发生了改变
如何去掉这个功能,如果是代码创建的设置这个属性为false
就可以了
//Swift
self.navigationController?.automaticallyAdjustsScrollViewInsets = false
如果是 User Interface
那么就去掉勾选