在标签的右上角添加点
adding dot on top right corner on label
你好,我正在创建 swift 应用程序,我想在 UILabel
上添加红点,但我找不到解决方法,我想要如下输出
i want to achive something like this
我已经检查了很多解决方案,但所有这些都是 UIButton
但我需要在 UILabel
上实施
我有参考 This
有谁能解决这个问题,请帮助我
试试这个
func addlabelBadge(label:UILabel,text:String,fontSize:CGFloat = 17.0) {
let size: CGSize = text.size(withAttributes: [.font: UIFont.systemFont(ofSize: fontSize)])
let point = CGPoint(x: size.width, y: 0)
let circle = CAShapeLayer()
let path = UIBezierPath(arcCenter: CGPoint(x: point.x+5, y: 10), radius: 5, startAngle: 0, endAngle: .pi*2, clockwise: true)
circle.path = path.cgPath
circle.fillColor = UIColor.red.cgColor
label.layer.addSublayer(circle)
}
在 viewDidLayoutSubviews
调用此函数
override func viewDidLayoutSubviews() {
addlabelBadge(label: myLabel,text:"Badges")
}
或者您在点击按钮时调用此函数
@objc func didClickedMyButton(){
addlabelBadge(label: myLabel,text:"Badges")
view.layoutIfNeeded()
}
你可以删除点调用
myLabel.layer.sublayers?.removeAll()
view.layoutIfNeeded()
你好,我正在创建 swift 应用程序,我想在 UILabel
上添加红点,但我找不到解决方法,我想要如下输出
i want to achive something like this
我已经检查了很多解决方案,但所有这些都是 UIButton
但我需要在 UILabel
上实施
我有参考 This
有谁能解决这个问题,请帮助我
试试这个
func addlabelBadge(label:UILabel,text:String,fontSize:CGFloat = 17.0) {
let size: CGSize = text.size(withAttributes: [.font: UIFont.systemFont(ofSize: fontSize)])
let point = CGPoint(x: size.width, y: 0)
let circle = CAShapeLayer()
let path = UIBezierPath(arcCenter: CGPoint(x: point.x+5, y: 10), radius: 5, startAngle: 0, endAngle: .pi*2, clockwise: true)
circle.path = path.cgPath
circle.fillColor = UIColor.red.cgColor
label.layer.addSublayer(circle)
}
在 viewDidLayoutSubviews
调用此函数override func viewDidLayoutSubviews() {
addlabelBadge(label: myLabel,text:"Badges")
}
或者您在点击按钮时调用此函数
@objc func didClickedMyButton(){
addlabelBadge(label: myLabel,text:"Badges")
view.layoutIfNeeded()
}
你可以删除点调用
myLabel.layer.sublayers?.removeAll()
view.layoutIfNeeded()