为了在按钮上显示进度圆,我将弧形绘制到0
,然后将其传递给CGContext
,最后传递到UIImage
图像。然而,它绘制的只是一个填充的正方形:
UIButton
为什么我得到一个实心方块,而不是一个填充的部分弧?这是将进度条画成圆圈的最佳方法吗?
答案 0 :(得分:1)
您的圆弧半径错误。实际的弧线正在您的上下文边界之外绘制。变化
CGContextAddArc(ctx,
rect.size.width/2., // centerX
rect.size.height/2., // centerY
rect.size.width, // radius
0, // start Angle
M_PI/2., // end Angle
1); // clockwise
到
CGContextAddArc(ctx,
rect.size.width/2., // centerX
rect.size.height/2., // centerY
rect.size.width/2., // radius
0, // start Angle
M_PI/2., // end Angle
1); // clockwise
另请注意,根据您的按钮类型,您可能会将图像视为模板,而不是您绘制的实际图像。要解决这个问题,您可以说(在使用按钮中的图像之前):
progressImg =
[progressImg imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];