2017-09-26 43 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

它仅适用于框架的矩形我只需要弧线 –