CoreGraphics FillPath和Stroke Path

Iss*_*mTP 20 core-graphics objective-c

我需要绘制一个六边形,并用一个带有图像作为图案的颜色构建填充它.我做了:

CGContextSaveGState(context);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetFillColorWithColor(context, [[UIColor colorWithPatternImage:[UIImage imageNamed:@"patternerba.png"]] CGColor]);
CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]);
CGContextSetLineWidth(context, 3.0);
// drawing hexagon here...
CGContextStrokePath(context);
CGContextFillPath(context);
[[NSString stringWithFormat:@"Foo"] drawAtPoint:innerRect.origin withFont:[UIFont fontWithName:@"Helvetica" size:16]];
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)

但是根据CGContextStrokePath和CGContextFillPath的顺序,我得到一个六边形但没有填充或填充但没有边框.我怎样才能解决这个问题?

sch*_*sch 32

尝试

CGContextDrawPath(context, kCGPathFillStroke);
Run Code Online (Sandbox Code Playgroud)

代替

CGContextStrokePath(context);
CGContextFillPath(context);
Run Code Online (Sandbox Code Playgroud)