1
我想要像這樣創建一個圓形漸變進度條:iOS中使用CoreGraphics中
我試圖與核芯顯卡這樣使它:
float radius = CGRectGetWidth(rect)/2.0f - self.circleBorderWidth/2.0f;
float angleOffset = 0;
UIBezierPath *aPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect))
radius:radius
startAngle:-angleOffset
endAngle:(mCircleSegs + 1)/(float)kCircleSegs*M_PI*2 - angleOffset
clockwise:YES];
CGPathRef shape = CGPathCreateCopyByStrokingPath(aPath.CGPath, NULL, 3, kCGLineCapSquare, kCGLineJoinMiter, 1.0f);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddPath(ctx, shape);
CGContextClip(ctx);
AngleGradientLayer *angle = [[AngleGradientLayer alloc] init];
angle.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithRed:0 green:0 blue:0 alpha:1].CGColor,
(id)[UIColor colorWithRed:1 green:1 blue:1 alpha:1].CGColor,
nil];
CGContextClipToRect(ctx, self.bounds);
[angle drawInContext:ctx];
[angle release];
但我認爲我在這裏錯了。它看起來不像這個例子。 CoreGraphics能夠繪製這樣的東西嗎?怎麼樣?
問題不是圓的2個部分。問題在於漸變的繪製。我真的不知道如何用核心圖形繪製這樣的東西。 – Hans 2013-02-18 00:13:57
回答編輯,添加了我得到的截圖 – Vinzzz 2013-02-18 07:35:59
是的!但正如你在上面的圖片中看到的那樣,當進度條是20%,60%,80%時......第一部分的結尾總是最白的。所以背景層不是解決方案。事實上,我想我們需要一個適應進度本身的背景...... – Hans 2013-02-18 11:08:08