[EN]It is an iOS UI module library for adding animation to iOS tabbar items and icons with Lottie, and adding a bigger center UITabBar Item. [CN]【中国特色 TabBar】一行代码实现 Lottie 动画TabBar,支持中间带+号的TabBar样式,自带红点角标,支持动态刷新。【iOS13 & Dark Mode & iPhone XS MAX supported】
CYLTabBarController 【iOS13 Dark Mode版本】v1.27.0 已经发布,更新日志
效果图
原理解析
在iOS13上,如果TabBar或者TabBarItem未设置如下几个相关方法:
barTintColor
setUnselectedItemTintColor
setBackgroundImage
setBackgroundColor
是否设置过,结构对比图如下:
从图上可以看出:未设置时,系统会给处于未选中(unselected)状态的 TabBarItem 加一个毛玻璃效果,为灰色,以此来充当
UnselectedItemTintColor
保证在 Dark Mode 中显得正常。这个改动会导致:
解决办法:
CYLTabBarController自动移除的逻辑如下:
当 CYLTabBarController 发现有毛玻璃效果,就内部默认设置
setUnselectedItemTintColor
,颜色为未选中 Item 的 Label 颜色,无 label 时取默认值systemGrayColor
。隐藏TabBar顶部分割线的实现,就是在原有基础上把修改ShadowImageView的透明度,改为修改hidden属性。