我喜欢Xcode中的小饼形进度条,当在项目中搜索字符串时(Shift-Command-F),请参见图片。
如何在iOS上调用它?我很乐意将它用于下载队列。
提前致谢。
答案 0 :(得分:6)
没有股票循环确定性进展视图。以下是您可能用来实现此类事情的示例drawRect:
。
- (void)drawRect:(CGRect)rect
{
CGFloat circleRadius = (self.bounds.size.width / 2) - (self.strokeWidth * 2);
CGPoint circleCenter = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
CGRect circleRect = CGRectMake(circleCenter.x - circleRadius, circleCenter.y - circleRadius, 2 * circleRadius, 2 * circleRadius);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
// Draw stroked circle to delineate circle shape.
CGContextSetStrokeColorWithColor(context, self.fillColor.CGColor);
CGContextSetLineWidth(context, self.strokeWidth);
CGContextAddEllipseInRect(context, circleRect);
CGContextStrokePath(context);
// Draw filled wedge (clockwise from 12 o'clock) to indicate progress
self.progress = MIN(MAX(0.0, self.progress), 1.0);
CGFloat startAngle = -M_PI_2;
CGFloat endAngle = startAngle + (progress * 2 * M_PI);
CGContextSetFillColorWithColor(context, self.fillColor.CGColor);
CGContextMoveToPoint(context, circleCenter.x, circleCenter.x);
CGContextAddLineToPoint(context, CGRectGetMidX(circleRect), CGRectGetMinY(circleRect));
CGContextAddArc(context, circleCenter.x, circleCenter.y, circleRadius, startAngle, endAngle, NO);
CGContextClosePath(context);
CGContextFillPath(context);
CGContextRestoreGState(context);
}
您需要创建strokeWidth
和fillColor
属性才能直接使用此代码,但它应该是一个开始。 Here's a sample project with a couple of examples.
答案 1 :(得分:3)
也许您可以使用MBProgressHUD中的代码,这样的馅饼会更大一些。
答案 2 :(得分:3)
我不相信他们在iOS上发布了这样的UIProgressView
,但你可以自己创建它。要将文章放在文本视图的右侧,请使用rightView
属性(不要忘记设置rightViewMode
)。
您可以为此创建自定义UIView
(我怀疑它是否值得尝试子类UIProgressView
)。我可能会用drawRect
手绘它,而不是试图使用图像或类似的东西。应该更容易以这种方式填写正确的百分比。
答案 3 :(得分:2)
答案 4 :(得分:1)
试试这个:LSPieProgressView
它是一个UIView类别,可以显示任何UIView的饼图进度。
代码示例:
#import "UIView+LSPieProgress.h"
- (void)updateProgress
{
[self.button setProgress:self.progress];
}