我使用以下代码绘制图案,使笔画看起来像粉笔灰尘。但是,如果我使用模式,我无法找到改变笔画颜色的方法。有没有办法做到这一点?
CGAffineTransform patternTransform = CGAffineTransformIdentity;
const CGPatternCallbacks kPatternCallbacks = {0, DrawPatternCellCallback, NULL};
const CGRect patternBounds = CGRectMake(0, 0, 8, 8);
CGPatternRef strokePattern = CGPatternCreate(
NULL,
patternBounds,
patternTransform,
8, // horizontal spacing
8,// vertical spacing
kCGPatternTilingNoDistortion,
true,
&kPatternCallbacks);
CGFloat color1[] = {1.0, 0, 1.0, 1};
CGColorSpaceRef patternSpace = CGColorSpaceCreatePattern(NULL);
CGContextSetStrokeColorSpace(cacheContext, patternSpace);
CGContextSetStrokePattern(cacheContext, strokePattern, color1);
// CGColorSpaceRef patternSpace = CGColorSpaceCreatePattern(NULL);
// CGContextSetStrokeColorSpace(cacheContext, patternSpace);
CGContextSetLineCap(cacheContext, kCGLineCapRound);
CGContextSetLineWidth(cacheContext, 4);
//Callback
void DrawPatternCellCallback(void *info, CGContextRef cgContext)
{
UIImage *patternImage = [UIImage imageNamed:@"chalk_brush.png"];
CGContextDrawImage(cgContext, CGRectMake(0, 0, 8, 8), patternImage.CGImage);
}
答案 0 :(得分:0)
颜色全部在回调中(您未在问题中显示)。这是模式绘图文档:
因此,正如您所看到的,您可以使用具有不同颜色的不同回调的彩色图案,或者使用模板("蒙版")模式。对于后者,在CGPatternCreate
来电中,您会说false
您现在所说的true
。然后,您可以设置笔触图案或填充图案,并传递颜色数组。