Я не понимаю, почему вы не просто используете служебную функцию, которая рисует цифру в круге в реальном времени.Таким образом, вы можете выбрать любой цифровой шрифт, размер круга, цвет цифры и цвет круга.Например:
func circleAroundDigit(_ num:Int, circleColor:UIColor,
digitColor:UIColor, diameter:CGFloat,
font:UIFont) -> UIImage {
precondition((0...9).contains(num), "digit is not a digit")
let p = NSMutableParagraphStyle()
p.alignment = .center
let s = NSAttributedString(string: String(num), attributes:
[.font:font, .foregroundColor:digitColor, .paragraphStyle:p])
let r = UIGraphicsImageRenderer(size: CGSize(width:diameter, height:diameter))
return r.image {con in
circleColor.setFill()
con.cgContext.fillEllipse(in:
CGRect(x: 0, y: 0, width: diameter, height: diameter))
s.draw(in: CGRect(x: 0, y: diameter / 2 - font.lineHeight / 2,
width: diameter, height: diameter))
}
}
Вот как это использовать:
let im = circleAroundDigit(3, circleColor: .yellow,
digitColor: .white, diameter: 30, font:UIFont(name: "GillSans", size: 20)!)
Вот результирующее изображение;заметьте, однако, что каждый аспект этого можно настроить, просто вызвав функцию по-разному:
![enter image description here](https://i.stack.imgur.com/HZbrm.png)
Хорошо, теперь у вас есть изображение,Вы говорите, что уже знаете, как вставить встроенное изображение в строку атрибута и отобразить ее как часть метки, поэтому я не буду объяснять, как это сделать:
![enter image description here](https://i.stack.imgur.com/hsl9R.png)