最近好久没写点东西了,因为公司业务需要,之前做tabbar相关需求,都是很简单的一些需求,这次遇到点问题,所以在此记录下
首先关于lottie动画不多叙述,CocoaPods接入库即可使用。
产品的需求是在tabbar加上动画,所以接到需求立刻着手处理,一开始是参考https://blog.csdn.net/weixin_30457065/article/details/102434546这篇文章,这篇文章的实现原理是遍历出tabbaritem的UITabBarSwappableImageView,然后将其隐藏, 待动画结束后在显示出来,刚引入在公司项目中开始是没什么问题的,但是后面UI,产品提出一些问题,
1.在动画结束后UITabBarSwappableImageView才结束,底部tabbar来回不停切换有时候会导致UITabBarSwappableImageView显示不出来。可能正常人都不会不停来会点,但是产品挑出来这毛病必须改不是。
2.由于底部tabbar不是一成不变的,比如说常见的飞猪等首页需要在滑动的时候动态修改底部tab的title,image,selectedImg,tabBarController.tabBar.subviews的控件顺序发生变化,修改后的tabbar首页tabbaritem会跑到subvies的最后,导致根据index获取到的 UITabBarSwappableImageView不是当前选中控制器的tabbaritem的frame ,导致lottie动画出现的位置不对
3.当底部tabbar的某个根视图控制器有许多业务逻辑处理时,切换会出现延迟和卡桢现象。
所以根据上面几个问题做出了相应的优化,自定义了tabbar,需要自取
https://github.com/373748211/yxkTabar
主要方法是在tabbar上添加了7个lottie动画view,然后在设置tabbar时,将选中image设为nil。通过点击tabbaritem代理方法,显示哪个lottieview。