iOS开发(2):自定义tabbar | 导航条 | 突显中间按钮

版权声明:转载就注明出处,谢谢。 https://blog.csdn.net/freejet2018/article/details/88058057

tabbar是放在APP底部的控件,也叫navigationbar或导航条。常见的APP都使用tabbar来进行功能分类的管理,比如微信、QQ等等。

需求是这样的,需要一个特殊一点的tabbar,要求突显中间的那个按钮,让中间按钮特别显眼,从而引导用户去点击。所以,让中间按钮大于两边的按钮,是一个基本的要求。

使用常规的UITabBar跟UITabBarController不能满足这个需求,但扩展它们,自定一下,就可以解决这个问题。另外,uitabbar是一个uiview,最终由uitabbarcontroller来管理,而uitabbarcontroller是一个uiviewcontroller。

(1)uitabbar

这是一个uiview,上面放一个按钮,这个按钮最终作为tabbar的中间按钮。

实现代码是这样的:
uitabbar的h文件
uitabbar的m文件

(2)uitabbarcontroller

这是一个uiviewcontroller,用来管理tabbar上的所有tab的viewcontroller,以及中间按钮。

实现代码是这样的:
uitabbarcontroller的h文件
uitabbarcontroller的m文件
uitabbarcontroller的m文件2

从上面的代码可以知道,每一个tab都是一个vc(可以设置文字与图片),这些vc都会add到uitabbarcontroller中。另外,关键点,用kvc的办法(setValue:forKeyPath)替换了原来的tabbar。

(3)使用自定义的uitabbarcontroller

使用的代码如下:
使用uitabbarcontroller的代码

只需要在APP的didFinishLaunchingWithOptions中,设置self.window.rootViewController为tabbarcontroller即可。

最终执行的界面效果是这样的:
自定义tabbar运行效果

扫描二维码关注公众号,回复: 5377135 查看本文章

以上的实现,参考了这篇文章:https://blog.csdn.net/c_calary/article/details/78834278

猜你喜欢

转载自blog.csdn.net/freejet2018/article/details/88058057