mlyixi's Blog

欲望的唤醒,信仰的坚定

frame bounds理解

原文见http://ashfurrow.com/you-probably-dont-understand-frames-and-bounds

每个视图控制器都有一个在其视图层次最下层的视图属性(self.view),这个视图可以有子视图。

self.view的范围是从状态栏下面到属于该控制器的下界。如下图,其下界就是tabbar上方。这是因为tabbar是属于tabbarcontroller的,层次上算是该视图控制器的superviewcontroller. 而上界为什么是状态栏下面就可以理解了。如果在interfacebuilder里看self.view的属性,则可以看出其frame是(0,20,宽度,高度)。注意,由于xib显示不了父控制器,就算是在ib中选择了bottombar,高度也是460.

在ios4及以前,你只能在一个视图控制器中加载子视图,这样写代码管理这些视图显示就有些难了.

在ios5,你可以在一个视图控制器中加载子视图控制器中的视图

下面说下frame与bounds的区别

一言以蔽之,就是frame是指视图在父视图坐标系中的坐标,bounds是指在自已坐标系中的坐标.所以加载子视图的过程就了然了.