swift封装一个继承UILabel的红色小圆圈用来显示消息的个数
来源:互联网 发布:智能合约 知乎 编辑:程序博客网 时间:2024/05/22 04:37
在app中往往会需要去显示一些通知的信息的个数,往往是在图标上面加一个红色的小圆圈,然后在上面动态的显示在消息的个数,就像微信中提示信息的个数一样。效果图如下:
现将如图红色圆圈的中的数字显示样式封装如下:
import UIKitclass Info: UILabel { var defaultInsets = CGSize(width: 2, height: 2) var actualInsets = CGSize() convenience init() { self.init(frame: CGRect()) } override init(frame: CGRect) { super.init(frame: frame) setup() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setup() } private func setup() { translatesAutoresizingMaskIntoConstraints = false layer.backgroundColor = UIColor.redColor().CGColor textColor = UIColor.whiteColor() // Shadow layer.shadowOpacity = 0.5 layer.shadowOffset = CGSize(width: 0, height: 0) layer.shadowRadius = 0.5 layer.shadowColor = UIColor.blackColor().CGColor self.textAlignment = NSTextAlignment.Center } // Add custom insets // -------------------- override func textRectForBounds(bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect { let rect = super.textRectForBounds(bounds, limitedToNumberOfLines: numberOfLines) actualInsets = defaultInsets let rectWithDefaultInsets = CGRectInset(rect, -actualInsets.width, -actualInsets.height) // If width is less than height // Adjust the width insets to make it look round if rectWithDefaultInsets.width < rectWithDefaultInsets.height { actualInsets.width = (rectWithDefaultInsets.height - rect.width) / 2 } return CGRectInset(rect, -actualInsets.width, -actualInsets.height) } override func drawTextInRect(rect: CGRect) { layer.cornerRadius = rect.height / 2 let insets = UIEdgeInsets( top: actualInsets.height, left: actualInsets.width, bottom: actualInsets.height, right: actualInsets.width) let rectWithoutInsets = UIEdgeInsetsInsetRect(rect, insets) super.drawTextInRect(rectWithoutInsets) }}
调用使用的代码如下:
例如:
var noticeNum:Info!noticeNum = Info(frame: CGRect(x:100, y:100, width : 25, height : 25))noticeNum.text = "31"self.View.addSubview(noticeNum)
0 0
- swift封装一个继承UILabel的红色小圆圈用来显示消息的个数
- 去掉struts2标签小圆圈的方法
- android默认的小圆圈图片 presence
- 取消RadioButton前面小圆圈的方法
- swiprefreshlayout主动显示小圆圈
- Xcode 编辑窗口左边的小圆圈不能点击问题 显示关联控件
- 关于ubuntu输入法的无法正常显示(不显示或者只显示禁止的小圆圈)
- 关于linux ubuntu输入法的无法正常显示(不显示或者只显示禁止的小圆圈)
- Swift UILabel的使用
- Swift UILabel的使用
- 红色小圆点消息提示实现
- 封装的一个用来下载图片的类
- 去掉RadioButton前面的小圆圈的两种方法
- Android 带小圆圈的倒计时圆形进度条
- 自定义ViewPager的小圆圈切换标志效果
- 进度圈的显示
- 更正swiprefreshlayout主动显示小圆圈
- 必填项的标签, 显示一个红色的星号"*"
- chrome不再支持showModalDialog
- php数组去重
- jq动态添加input元素无法使用My97DatePicker日期插件解决办法
- 实体类注解错误:Could not determine type for: java.util.List
- .NET 实现并行的几种方式(一)
- swift封装一个继承UILabel的红色小圆圈用来显示消息的个数
- vue使用stylus报错解决方法
- 常用资源链接
- POI 讀取EXCEL
- binary.c -- 以二进制形式打印十进制整数
- Access Control
- javashiyan
- 回到顶部 插件 遇到的一点小问题
- TCP详解