2011-01-12 70 views
0

我正在使用以下代码绘制DrawRect中的弧线...我只想绘制渐变效果的弧线......请提供任何帮助吗?CGContextAddArc中的渐变?

   CGContextSetAlpha(ctx, 0.5); 
      CGContextSetRGBFillColor(ctx, color.red, color.green, color.blue, color.alpha); 
      CGContextMoveToPoint(ctx, cX, cY); 
      CGContextAddArc(ctx, cX, cY, radious+10, (startDeg-90)*M_PI/180.0, (endDeg-90)*M_PI/180.0, 0); 
      CGContextClosePath(ctx); 
      CGContextFillPath(ctx); 

回答

1

首先产生电弧然后使用以下代码来渐变效果应用到路径,

CGGradientRef glossGradient; 
CGColorSpaceRef rgbColorspace; 
size_t num_locations = 2; 
CGFloat locations[2] = { 0.0, 1.0 }; 
CGFloat components[8] = { 0.965, 0.965, 0.965, 1.0, // Start color 
    0.603, 0.603, 0.603, 1.0 }; // End color 

rgbColorspace = CGColorSpaceCreateDeviceRGB(); 
glossGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations); 

CGRect currentBounds = self.bounds; 
CGPoint topCenter = CGPointMake(CGRectGetMidX(currentBounds), 0.0f); 
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMaxY(currentBounds)); 
CGContextDrawLinearGradient(UIGraphicsGetCurrentContext(), glossGradient, topCenter, midCenter, 0); 

CGGradientRelease(glossGradient); 
CGColorSpaceRelease(rgbColorspace);