画出一个圆圈的百分比

时间:2012-12-16 17:17:42

标签: iphone objective-c ios ipad

我想画一个像Objective-c中图片中那样的圆圈:

Heberger image http://img15.hostingpics.net/thumbs/mini_906373Capturede769cran20121216a768175817.png

我只想绘制从底部开始填充相应百分比的蓝色圆圈。 (注意:百分比的范围在0到100之间)不要担心中心的刻度,它只是在圆形视图上添加的imageView。

3 个答案:

答案 0 :(得分:4)

您可以制作2张图片视图。一个包含带有复选标记的圆圈,其余部分是透明的。另一张图像位于其下方,带有浅蓝色矩形。随着百分比的增加,您通过修改它的框架来越来越多地提高蓝色矩形。当然,通过顶部图像的透明部分可以看到它。

希望这有帮助!

答案 1 :(得分:1)

// Draw circle of radius r and center X,Y
CGRect r;
r.origin.y = Y-radius;
r.origin.x = X-radius;
r.size.width = 2*radius;
r.size.height 2*radius;

CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, r);
CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor lightGray] CGColor]));
CGContextFillPath(ctx);

// Draw a blue color filled path. Below is half circle filled with blue color.
CGContextBeginPath(ctx);
CGContextAddArc(ctx, X, Y, r, -M_PI_2, M_PI_2, 1);
CGContextClosePath(ctx); // could be omitted
CGContextSetFillColorWithColor(ctx, [UIColor blueColor].CGColor);
CGContextFillPath(ctx);

想法是绘制一个圆圈并用浅灰色填充它,然后从圆弧(无论角度是什么角度)绘制和关闭路径,并用蓝色填充它。

答案 2 :(得分:0)

添加Levi的建议。

您可以使用CGAffineTransformScale缩放矩形图像。

e.g:

CGAffineTransform transform = self.rectImageView.transform;
float scale = 0.5;
self.rectImageView.transform = CGAffineTransformScale(transform, 1, scale);

这会将图像缩放到50%

将其设置回100%,只需设置scale = 2.