iOSframe和bound的理解
翻译自此文
在iOS中,viewController是一个控制view层次的对象.主要负责MVC中Model和View之间的交互.
viewController中有一个根视图self.view. self.view的范围是从状态栏下面到属于该控制器的下界(iOS7中已经改成透明状态栏了)。如下图,其下界就是tabbar上方。这是因为tabbar是属于tabbarcontroller的,层次上算是该视图控制器的superviewcontroller. 而上界为什么是状态栏下面就可以理解了。如果在interfacebuilder里看self.view的属性,则可以看出其frame是(0,20,宽度,高度)。注意,由于xib显示不了父控制器,就算是在ib中选择了bottombar,高度也是460.
在ios4及以前,你只能在一个视图控制器中加载子视图,这样写代码管理这些视图显示就有些难了.
在ios5以后,你可以在一个视图控制器中加载子视图控制器中的视图.
下面说下frame与bounds的区别
蓝色视图是经过变换换视图,但是它真正的范围是虚线框所示的范围.所以frame是指视图在父视图坐标系中的坐标,也就是包括这个视图的最小竖直长方形,而bounds是指在自已坐标系中的坐标, 也就是蓝色原点相对于虚线框的位置,所以加载子视图的过程就了然了.
- 原文作者:mlyixi
- 原文链接:https://mlyixi.github.io/post/osx/iOSframe%E5%92%8Cbound%E7%9A%84%E7%90%86%E8%A7%A3/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。