继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕标琳琳
关注TA
已关注
手记 278
粉丝 18
获赞 140

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运行效果

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

作者:广州小程

原文出处:https://www.cnblogs.com/freeself/p/10456250.html  

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP