objective-c - 用特定颜色填充路径

标签 objective-c drawing core-graphics cgcontext

我想用红色填充路径。这是我的代码:

CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
CGContextBeginPath(c);
CGContextSetStrokeColor(c, red);
CGContextSetFillColorWithColor(c, [UIColor whiteColor].CGColor);
CGContextMoveToPoint(c, 10, 10);
CGContextAddLineToPoint(c, 20, 20);
CGContextAddLineToPoint(c, 20, 40);
CGContextAddLineToPoint(c, 40, 20);
CGContextAddLineToPoint(c, 10, 10);
CGContextStrokePath(c);
CGContextFillPath(c);

我知道我必须使用 CGContextSetFillColor()CGContextFillPath(),但它不起作用。

我怎样才能正确地做到这一点?

最佳答案

我的例子的答案是:

CGContextRef context = UIGraphicsGetCurrentContext();

//set fill pattern
UIColor *patternRed = [UIColor colorWithPatternImage:[UIImage imageNamed:@"patternRed.png"]];

CGContextSetLineWidth(context, 1.0);
CGContextSetFillColorWithColor(context, patternRed.CGColor);

CGMutablePathRef pathRef = CGPathCreateMutable();

CGPathMoveToPoint(pathRef, NULL, 0, self.frame.size.height);
for (int i = 0; i<255; ++i) {
    CGPathAddLineToPoint(pathRef, NULL, stepX*arrayX[i], self.frame.size.height - (arrayYRed[i]*stepY));
}
CGPathAddLineToPoint(pathRef, NULL, stepX*255, self.frame.size.height);
CGContextAddPath(context, pathRef);
CGContextFillPath(context);

CGPathRelease(pathRef);

关于objective-c - 用特定颜色填充路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339653/

相关文章:

Java 2d drawLine 对于长线来说很慢

java - Android - 如何在 setColor 中更改颜色

ios - 是否有快速绘制二维数组的推荐方法?

iphone - 沿着 Iphone 中的路径拖动

iphone - NSDictionary,这是为什么

iphone - iPad 和 iPhone 的不同布局

ios - 从 webView 检测 HTTP 代码 302

java - 如何在没有吸引力的情况下将文本与 Graphics2D 对齐?

ios - 某些角度的连接线具有尖的顶点而不是圆形的

ios - 如何在 iOS 上强制释放