如何画一个里面有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 方法。
一种简单的方法是单独使用标签,并设置其图层的角半径和背景颜色。同时将图层设置为剪辑。如果您正确选择角半径,您可以得到一个圆形标签,如果它包含的文本需要,它会变成一个长方形气泡。
我想画这样的东西:
到目前为止我知道怎么画圆盘了,我用的是这个方法:
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 方法。
一种简单的方法是单独使用标签,并设置其图层的角半径和背景颜色。同时将图层设置为剪辑。如果您正确选择角半径,您可以得到一个圆形标签,如果它包含的文本需要,它会变成一个长方形气泡。