博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS tabbar 自定义小红点 消息显示,定制边框、颜色、高宽
阅读量:6291 次
发布时间:2019-06-22

本文共 1387 字,大约阅读时间需要 4 分钟。

一般我们需要显示消息数,会利用到系统提供的api

UIApplication.sharedApplication().applicationIconBadgeNumber = 10

 

但如果我们不想显示个数、会想加一点自定义效果,如边框颜色、自定义背景等,这种情况下,还是自己自定义会更好。

进入正题:

1、新建iOS类别Category文件,如TabbarExtension.swift

 

2、新建方法

添加小红点:

func showBadgeOnItemIndex(index:Int,corner:CGFloat = 4.0) {                //移除之前的小红点        removeBadgeOnItemIndex(index)                //新建小红点        let badgeView = UIView()        badgeView.tag = 888 + index        badgeView.layer.borderColor = UIColor.whiteColor().CGColor        badgeView.layer.borderWidth = 1        badgeView.layer.cornerRadius = corner        badgeView.backgroundColor = UIColor.redColor()        let tabFrame:CGRect = self.frame                //确定小红点的位置        let WH:CGFloat = corner*2        let percentX = (CGFloat(index) + 0.6) / TabbarItemNums        let x:CGFloat = percentX * tabFrame.size.width        let y:CGFloat = 0.16 * tabFrame.size.height        badgeView.frame = CGRectMake(x, y, WH, WH)        self.addSubview(badgeView)        print(badgeView.frame)    }

  

移除小红点:

func removeBadgeOnItemIndex(index:Int) {        for v in self.subviews {            if v.tag == BasicTag+index {                v.removeFromSuperview()            }        }    }

  

控制器内使用:

self.tabBarController?.tabBar.showBadgeOnItemIndex(1, corner: 4)

  

上面会用到宏定义:

let BasicTag:Int = 999

let TabbarItemNums:CGFloat = 4.0

 

红点默认半径4.0,这里,如果想实现自己的效果,可以添加代码自定义。

 

完毕。

效果图:

 

 

 

 

转载地址:http://njkta.baihongyu.com/

你可能感兴趣的文章
Docker容器启动报WARNING: IPv4 forwarding is disabled. Networking will not work
查看>>
(转)第三方支付参与者
查看>>
程序员修炼之道读后感2
查看>>
DWR实现服务器向客户端推送消息
查看>>
js中forEach的用法
查看>>
Docker之功能汇总
查看>>
!!a标签和button按钮只允许点击一次,防止重复提交
查看>>
(轉貼) Eclipse + CDT + MinGW 安裝方法 (C/C++) (gcc) (g++) (OS) (Windows)
查看>>
还原数据库
查看>>
作业调度框架 Quartz.NET 2.0 beta 发布
查看>>
mysql性能的检查和调优方法
查看>>
项目管理中的导向性
查看>>
Android WebView 学习
查看>>
(转)从给定的文本中,查找其中最长的重复子字符串的问题
查看>>
HDU 2159
查看>>
spring batch中用到的表
查看>>
资源文件夹res/raw和assets的使用
查看>>
UINode扩展
查看>>
LINUX常用命令
查看>>
百度云盘demo
查看>>