UITabBarController


UITabBarController与UINavigationController有些类似又有些区别,因此最好通过两个控制器的对比来了解其结构。

从共同点看

  1. 它们都是通过一个childViewControllers数组来存储子控制器以强引用它们,然后把它们对应的View显示到屏幕上
  1. UINavigationController有一个NavigationBar始终显示在最前面,
    UITabBarController也有一个tabBar始终显示在最前面

从不同点看

显示子控制器的View
  1. UINavigationController只有在需要显示某个控制器的View的时候才会加载该View并且把原本显示的View移除(这里只是移除View,但是控制器并没有移除)
  2. UITabBarController则是在一开始显示的时候就把所有的View都加载进内存,需要显示某个View的时候就直接拿过来,原本的View也不会被移除

导航条和标签栏
  • 导航条的y值是从20开始的, 但内部有一个UIImageView子控件超过导航条高度,因此看到的是64高度,此外 导航条底部还有一个子控件 -> 一根线(一张阴影图片)
    • 一个导航控制器只有一个NavigationBar也就是所有的子控制器共用同一个导航条,导航条显示的内容和栈顶控制器有关,所以导航条上显示的内容由栈顶控制器控制
  • 标签栏的高度为49,它的子控件除了与子控制器相对应的UITabBarButton按钮还有 背景UIImageView和分割线UIVIew
    • 在子控制器中是无法拿到TabBar的,只能拿到UItabBarItem 来设置

暂时了解的也就这些了,以后认识更加深刻再来补上...

你可能感兴趣的:(UITabBarController)