iOS tabbar 自定义小红点 消息显示,定制边框、颜色、高宽
一般我们需要显示消息数,会利用到系统提供的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,这里,如果想实现自己的效果,可以添加代码自定义。
完毕。
效果图:

iOS tabbar 自定义小红点 消息显示,定制边框、颜色、高宽的更多相关文章
- iOS  隐藏自定义tabbar
		iOS 隐藏自定义tabbar -(void)viewWillAppear:(BOOL)animated { NSArray *array=self.tabBarController.view.su ... 
- 通过用 .NET 生成自定义窗体设计器来定制应用程序
		通过用 .NET 生成自定义窗体设计器来定制应用程序 https://www.microsoft.com/china/MSDN/library/netFramework/netframework/Cu ... 
- iOS项目——自定义UITabBar与布局
		在上一篇文章iOS项目——基本框架搭建中,我们详细说明了如何对TabBarItem的图片属性以及文字属性进行一些自定义配置.但是,很多时候,我们需要修改TabBarItem的图片和文字属性之外,还需要 ... 
- IOS 本地通知推送消息
		在现在的移动设备中,好多应用性的APP都用到了推送服务,但是有好多推送的内容,比如有的只是单纯的进行推送一个闹钟类型的,起了提醒作 用,有的则是推送的实质性的内容,这就分为推送的内容来区别用什么推送, ... 
- Yii自定义错误提示消息
		英文原文: http://www.yiiframework.com/wiki/1/how-to-customize-the-error-message-of-a-validation-rule/ Va ... 
- C# 收发和处理自定义的WINDOWS消息
		C# 发送.接收和处理自定义的WINDOWS消息 转载地址:http://blog.chinaunix.net/uid-24427209-id-2608350.html 为了程序启动后自动执行主函数, ... 
- iOS 11开发教程(八)定制iOS11应用程序图标
		iOS 11开发教程(八)定制iOS11应用程序图标 在图1.9中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以下就来实现在iOS模拟器上将 ... 
- iOS 9应用开发教程之显示编辑文本标签文本框
		iOS 9应用开发教程之显示编辑文本标签文本框 ios9显示.编辑文本 在iOS,经常会看到一些文本的显示.文字就是这些不会说话的设备的嘴巴.通过这些文字,可以很清楚的指定这些设备要表达的信息.本节将 ... 
- 关于iOS Tabbar的一些设置
		事实上iOS Tabbar的可定制性很高,我们没有必要反复造轮子,以下是笔者收集的一些tabbar的经常使用设置.希望对大家有所帮助. 设置tabbar选中颜色 iOS7设置例如以下: [self.t ... 
随机推荐
- android FragmentActivity+FragmentTabHost+Fragment框架布局
			这周比较闲,计划系统的学习一下android开发,我本是一名IOS程序员,对手机开发还是有自己的一套思路的, 固这套思路用到我当前学android上了,先选择从Main页面的tabbar部分代码入手, ... 
- 设置placeholder字体颜色
			/*设置placeholder字体颜色*/::-webkit-input-placeholder{ color: #FFF;}:-ms-input-placeholder{ color: #FFF;} ... 
- mybatis There is no getter for property named 'xxxx
			mybatis There is no getter for property named 'xxxx 360反馈意见截图16230322799670.png http://blog.sina.com ... 
- HTML 限制文本框只能输入特定字符(比如数字 onkeyup+onafterpaste)
			正则表达式1 <td><asp:TextBox ID="TextBox_username" Width="250" runat="s ... 
- android自动化之monkeyrunner
			一.使用CMD命令打开模拟器 运行monkeyrunner之前必须先运行相应的模拟器或连上设备,不然monkeyrunner无法连接设备. 1.1 用Elipse打开Android模拟器或在CMD中 ... 
- 商业银行在CNAPS体系中对各种交易的处理
			简单来讲,商业银行在CNAPS体系中, 一)行内的交易 由各个银行的行内业务系统来自行解决信息流和资金流问题: 二)跨行的交易分渠道处理 柜台和网银等渠道,商业银行直接直连央行的大小额以及超级网银来解 ... 
- angularJs , json,html片段,bootstrap timepicker angular
			css .demotest { width: %; height: auto; overflow: auto; position: relative; margin: auto; margin-top ... 
- 当jquery ajax遇上401请求
			jquery ajax是个很常用接口,而在请求时候,可能存在响应401的情况(身份认证过期或未登录),比较容易出现在混合应用上,如何进行身份认证,重发失败请求,还是值得注意的. ajax请求有两种方式 ... 
- python之socket开发
			socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Un ... 
- 如何用JavaScript探测CSS动画是否已经完成
			不啰嗦上代码: WN:(function(){ var el = $('<fakeelement>'), transition="transition", transi ... 
