iOS⾃定义tabbar的badgeValue显⽰样式
想妈妈
系统的 tabbar 中设置tabbarItem.badgeValue 后显⽰样式是红⾊的⼩数字,由于UI在设计 app 界⾯时考虑到风格统⼀的问题,那么就需要让badgeValue 背景⾊,⽂字颜⾊有所改变.通过遍历所有 tabbar 内部⼦ view 没有发现某个 view 时可以改变这个 badgeValue 的样式的,通过查找subLayer ⽅式也没有找到控制着这个 badgeValue 显⽰的 layer.
能不能通过⾃定义 badgeValue⽅式去显⽰满⾜我们的需求呢?
中午好答案是肯定的,这⾥有写好的⾃定义BKTabbar ⼀个 UITabbar 的⼦类和⼀个 UITabBbarItem+Extension 的分类,完美的解决了这个问题
使⽤起来也⽐较简单
使⽤⽅法
1 需要⾃定义 TabBarController 通过 KVC ⽅式替换 tabbarControoler 的 tabBar
内表面>虾仁蛋羹
电脑密码怎么改
let newTabbar = BKTabbar(frame: lf.tabBar.frame)
// 需要先给 tabbarcontroller 设置 viewControllers 已经 tabbarItem 属性包括 image lectImage 才可以替换掉系统的 tabbar
newTabbar.items = lf.tabBar.items
东四民芳餐厅// badgeValue 的⽂字颜⾊
newTabbar.badgeValueTextColor = UIColor.black
// badgeValue 背景⾊
newTabbar.badgeValueBackgroundColor = llow
lf.tValue(newTabbar, forKey: "tabBar")
2 lf.tabBarItem.badgeValue = "100"
通过 UIViewControler 的 tabBarItem.badgeValue 属性设置 badgeValue的值 , 跟系统的 badgeValue 设置⽅式⼀致,只是屏蔽了系统的实现⽅法,改成⾃定义 badgeValue 的显⽰样式
注意不能通过 lf.tabbarController.tabbarItem.badgeValue 去设置⾃定义 badgeValue 显⽰内容,因为这 lf.tabbarController.tabbarItem 获取的这个 UITabBarItem 跟 UITabbar 内部的 Item数组⾥的所有 UITabbarItem 都不⼀样,所以就⽆法去修改 badgeValue 的值,但是可以⽤viewController.tabBarItem.badgeValue 去设置badgeValue 的值
iOS 10以后出现了新的api 可以直接设置 badgValue显⽰样式
家具购销合同范本
如果不考虑适配 iOS10以下系统的话,可以使⽤上边给出的新的api,需要适配其他 iOS 版本的话可以考虑我写的这个 BKBadgeValue ,你在使⽤过程中有任何问题都可以联系作者 : 教授哥哥 1060545231
>做梦牙掉了