之前设计那边需要一个tabbar中心突出的效果用的这个库还不错推荐下还带几种动画动画处理的还很细腻2700个星的库还是很不错的RAMAnimatedTabBarController地址地址请戳
之后遇到了一个问题就是隐藏tabbar图标不隐藏看了下图发现作者吧tabbar弄到了windows上,而且看了issus貌似大家都遇到这个问题作者也没回复,自己弄吧。蛋疼了,又不想换库折腾了几天自己写了个类。
importUIKit
extensionRAMAnimatedTabBarController:UINavigationControllerDelegate{
funchideTabBar(flag:Bool) {
letatc =self
leticons= atc.iconsView
if(flag ==true){
foriconinicons {
icon.icon.superview?.hidden=true
}
atc.tabBar.hidden=true
}else{
atc.tabBar.hidden=false
foriconinicons {
ifletsup = icon.icon.superview{
sup.hidden=false
sup.superview?.bringSubviewToFront(sup)
}
}
}
}
判断下进来是push还是其余的我们这边所有的子界面是隐藏的我直接做的是push进来进行隐藏
funcnavigationController(navigationController:UINavigationController, willShowViewController viewController:UIViewController, animated:Bool) {
hideTabBar(viewController.hidesBottomBarWhenPushed)
}
funcnavigationController(navigationController:UINavigationController, didShowViewController viewController:UIViewController, animated:Bool){
hideTabBar(viewController.hidesBottomBarWhenPushed)
}
}
然后再RAMAnimatedTabBarController.swift里面调用58行左右的didload里面添加
super.viewDidLoad()
letconls = (self.viewControllersas? [UIViewController])?.filter({$0isUINavigationController}) ?? []
forctlinconls{
(ctlas!UINavigationController).delegate=self
}
可以解决已经提issus但是最近发现连续多级push在返回来tabbar会盖住tabbar的image,我怀疑是tababr每次进界面时候应该会走topviewcontroller之类的方法,但是在tabbar的.h里面也没找到这个方法,解决这个问题在隐藏界面直接执行这两个方法让脱离本界面时候进行显示。这个必须手写勾选store时候会造成出界面时候tabbar再次覆盖image
-(void)viewWillAppear:(BOOL)animated
{
self.hidesBottomBarWhenPushed=YES;
}
-(void)viewWillDisappear:(BOOL)animated
{
self.hidesBottomBarWhenPushed=NO;
}