如何画一个里面有number/string的圆盘?

How to draw a disk with a number/string inside?

我想画这样的东西:

到目前为止我知道怎么画圆盘了,我用的是这个方法:

func drawDisk(color: UIColor, rectForDisk: CGRect = CGRectMake(0.0, 0.0, 1.0, 1.0), withStroke: Bool) -> UIImage {
    UIGraphicsBeginImageContextWithOptions(rectForDisk.size, false, 0.0)
    let context = UIGraphicsGetCurrentContext()

    CGContextSetFillColorWithColor(context, color.CGColor)
    CGContextFillEllipseInRect(context, rectForDisk)

    let rectForCircle = CGRectMake(0.5, 0.5, rectForDisk.size.width - 1, rectForDisk.size.height - 1)
    CGContextSetLineWidth(context, withStroke ? 1.0 : 0)
    CGContextSetStrokeColorWithColor(context,
        UIColor.blackColor().CGColor)
    CGContextAddEllipseInRect(context, rectForCircle)
    CGContextStrokePath(context)

    let image = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()

    return image
}

我不知道要做的是在我的绘图中添加一些文字。我什至不确定这是否可能。我想在上面添加一个标签,但我想知道是否有 better/proper 方法。

一种简单的方法是单独使用标签,并设置其图层的角半径和背景颜色。同时将图层设置为剪辑。如果您正确选择角半径,您可以得到一个圆形标签,如果它包含的文本需要,它会变成一个长方形气泡。