2017-09-26 46 views
0

我必須填寫與漸變顏色只在弧弧你可以在任何一個提供解決方案enter image description here梯度層改變UIbezierpath弧IOS

CGContextRef ctx = UIGraphicsGetCurrentContext(); 
UIBezierPath *arc = [UIBezierPath bezierPathWithArcCenter:barCenter radius:barRadius startAngle:fmodf(MIN_ANGLE+M_PI, 2*M_PI) endAngle:fmodf(MAX_ANGLE+M_PI, 2*M_PI) clockwise:YES]; 
CGContextSetLineCap(ctx, kCGLineCapRound); 
CGContextSetLineWidth(ctx, kArcThickness); 


CGContextSetGrayStrokeColor(ctx, 0.6, 1.0); 
CGContextAddPath(ctx, arc.CGPath); 
CGContextStrokePath(ctx); 




// knob to move the slider 

CGContextSetLineWidth(ctx, 2.0); 
CGContextSetFillColorWithColor(ctx, [UIColor whiteColor].CGColor); 
CGContextAddArc(ctx, knobCenter.x, knobCenter.y, knobRadius, 0, 2*M_PI, 1); 
CGContextDrawPath(ctx, kCGPathFill); 
+0

你需要什麼輸出..? –

+0

我需要一個線寬爲10的弧線,並且該弧線顏色需要爲漸變色 –

回答

0

使用下面的代碼嘗試..

//list of components 
CGFloat components[8] = { 
    0.0, 0.0, 1.0, 1.0,  // Start color - Blue 
    1.0, 0.0, 1.0, 1.0 }; // End color - Violet 

CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceRGB(); 
CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, components, NULL, 2); 
CGColorSpaceRelease(baseSpace), baseSpace = NULL; 

//Gradient direction 
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect)); 
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect)); 

//Draw the gradient 
CGContextDrawLinearGradient(ctx, gradient, startPoint, endPoint, 0); 
CGGradientRelease(gradient), gradient = NULL; 

CGContextRestoreGState(ctx); 
+0

它僅適用於框架的矩形我只需要弧線 –