需求效果
- 开发中如果是常见的系统样式
tabbar
设计,用系统自带的TabbarController
实现即可。
- 如果有特殊需求,比如中间需要按钮突出或者其它不规则的设计样式可以用这个第三方库来实现CYLTabBarController,基本上可以满足绝大多数的不规则设计。
- 如果还有更特殊的设计(比如下图),中间的福袋按钮需要上下跳动,这个时候只能自定义
tabbar
实现该效果。
实现思路
- 新建一个类
HomeTabBarController
继承于UITabBarController
,将该类设置为window
的rootViewController
。 - 将
tabbarController
自带的tabBar
隐藏掉,在HomeTabBarController
的viewDidLoad
方法中执行self.tabBar.hidden = YES;
。 - 将有凹陷的图连接阴影部分一起切出来,作为一个整体图片,作为背景图添加到
tabbarController
的view
中,然后平均分布创建5个按钮,中间按钮为福袋按钮,并设置上下重复移动的动画效果即可。
注意事项
在APP 进入下一个界面的时候底部的自定义tabbar并不会消失,需要自己在
HomeTabBarController
的viewWillDisappear
与viewWillAppear
方法中处理消失与显示在每一个
tabbarController
的子vc
中需要自己处理对于滚动后tabbarView遮挡的问题在APP进入后台挂起与返回的时候动画效果会停止,需要注册通知重启动画
代码
具体动画效果运行Demo地址,GIF太大,无法上传