在标签的右上角添加点

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()