最近想写点文章,但是B站的IJKPlayer帧数和起播还在优化,下次再聊。今天来说下最基本的项目架构吧————如何快速用UITabbarController-UINavgationController搭建一个项目的雏形。
一、icon准备如图一,tabbar上四个图标。d表示default,s表示selected。第一个nav_bg是顶部导航栏的背景图。注意图片尺寸不能太大,只接受60X60以下,如果图片太大(前提是<60X60)溢出了tabbar,在图片后面加@2x!!!!
图一二、在storyboard中添加四个NavgationController和一个TabbarController并且连线如图二
图二三、创建UITabbarController的子类,并且和storyboard中的TabbarController关联。然后在关联的子类的.m中进行如图三操作。
图三四、现在已经能看到正常的项目UI了。下一步设置导航栏。创建四个viewController继承自UIviewController,分别关联storyboard中的四个控制器。在每个控制器中的viewDidLoad中如图四操作:至于为什么要重复四次后面会解释。
图四五、导航栏背景和属性设置成功了,在尝试Push到下一层控制器时,都会发现底部的tabbar不隐藏,而且每个控制器的标题都要在viewDidLoad中设置,很不方便。那么我们自定义一个控制器的基类继承自UIViewController,先重写构造函数,之后所有的控制器都继承自这个自定义的基类,用i构造函数来初始化。
在这个初始化函数中,不仅可以在init的时候直接设置导航栏标题。而且通过设置hidesBottomBarWhenPushed的值使push到这个控制器的时候底部tabbar隐藏,而最底层的四个控制器因为是不是集成自这个类不会有相应的设置,避免了tabbar隐藏后不出现的bug。如图五:
图五六、基类共同属性设置如图六
图六七、之后的控制器全部继承自自定义基类勾选Xib开发就行了,如图七。
图七这次说的是用系统的方法来设置UITabbarController-UINavgationController架构,优势是简单快速。至于能满足更多需求但复杂点的自定义tabbar下次再聊吧。
要是觉得有用的话记得点个赞哦。
网友评论