在iPhone应用程序中画线和用粉笔纹理填充

在iPhone应用程序中画线和用粉笔纹理填充

问题描述:

我的iPhone应用程序中的代码在UIView中绘制饼图。一切都很棒,但我需要能够使用粉笔般的纹理来绘制轮廓,然后填充饼图的不同颜色。在iPhone应用程序中画线和用粉笔纹理填充

这里是从每个区域的现有代码提取物:

绘制饼图周围一圈:

CGContextRef ctx = UIGraphicsGetCurrentContext(); 

CGContextSetRGBStrokeColor(ctx, 1.0, 1.0, 1.0, 1.0); 
CGContextSetLineWidth(ctx, 8.0); 

// Draw a thin line around the circle 
CGContextAddArc(ctx, x, y, r, 0.0, 360.0*M_PI/180.0, 0); 
CGContextClosePath(ctx); 
CGContextDrawPath(ctx, kCGPathStroke); 

...和拉伸的馅饼的片段:

CGContextSetRGBStrokeColor(ctx, 1.0, 1.0, 1.0, 1.0); 
      CGContextSetLineWidth(ctx, 8.0); 
      CGContextMoveToPoint(ctx, x, y); 
      CGContextAddArc(ctx, x, y, r, (startDeg-90)*M_PI/180.0, (endDeg-90)*M_PI/180.0, 0); 
      CGContextClosePath(ctx); 
      CGContextDrawPath(ctx, kCGPathStroke); 

...然后填充颜色填充:

CGContextSetRGBFillColor(ctx, color.red, color.green, color.blue, color.alpha); 
      CGContextMoveToPoint(ctx, x, y); 
      CGContextAddArc(ctx, x, y, r, (startDeg-90)*M_PI/180.0, (endDeg-90)*M_PI/180.0, 0); 
      CGContextClosePath(ctx); 
      CGContextFillPath(ctx); 

忽略了我没有在变量声明中粘贴很多变量的事实,我希望代码是不言自明的。

现在:如何更改代码以使用纹理来绘制线条/弧线的实际图形?

同样,如何使用纹理填充而不是颜色填充?

我试图让这个程序完成,这是我最后的绊脚石。 SO和其他网站上的其他问题似乎都不能以我可以遵循的方式回答问题。

任何帮助将受到感谢!

罗伯特

知道这是过时的,但一个可以设定填充或使用这种简单的代码片段行程模式:

// Somewhere in initialization code. 
    UIColor *pattern = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pattern.png"]]; 
    CGColorRef fillColor = [pattern CGColor]; 
    CGColorRef strokeColor = [pattern CGColor]; 

    // Probably in |draw| method call. 
    CGContextSetStrokeColorWithColor(context, strokeColor); 
    CGContextSetFillColorWithColor(context, fillColor); 

希望它会帮助别人。还有其他很多先进的可能性 - 您可以通过多种方式操作模式:移位,缩放,旋转,使用彩色或模板图案等许多方式,但这需要深入挖掘api文档。