iOS自定义tabbar的badgeValue显示样式

更新时间:2023-07-01 16:55:19 阅读: 评论:0

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
>做梦牙掉了

本文发布于:2023-07-01 16:55:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1072501.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:问题   定义   需要   系统   没有   考虑   作者
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图