近期项目进行了全面改版,基本上就是推翻重来,所以对以前项目使用的部分技术进行了重新实现.
在前面的文章介绍过,项目中UITabBarController用到了类闲鱼/转转的效果,而照搬应用git上面的一位哥们贡献的方式实现后,点击中间按钮突出部分会造成选择中间按钮失灵的问题.当初时间仓促,用类似打补丁的方式,对该问题进行了修复.借着这次项目大改的机会,对闲鱼效果的实现进行了全部改写.对代码优化封装后,方便用到的小伙伴~
下面对使用方式做一下说明:
1在tabBarController的viewDidLoad方法中,添加如下代码:
- (void)viewDidLoad {
[super viewDidLoad];
GXCustomTabBar *customTabBar = [[GXCustomTabBar alloc] initWithImageName:@"dis_liveCast" title:@"直播" tabBarController:self];
[self setValue:customTabBar forKey:@"tabBar"];
}
2若需要改变中间按钮的大小/偏移距离/颜色/选中颜色,请在PrefixHeader.pch文件中更改;
3技术实现总结:
<1>用KVC的方式设置customTabBar;
<2>添加CustomBtn到customTabBar;
<3>在customTabBar中用hitTest拦截点击,处理选中的ViewController;
<4>在customTabBar的layoutSubView方法中移除系统的UITabBarButton和上方的间隔线;
<5>抽取代码实现,使功能相对独立,方便重用;
下面是git地址:
https://github.com/zhudong10/-TabBarController-
如果使用方便,记得点⭐️鼓励一下哦~
遇到问题,欢迎留言交流.