【问题标题】:On iOS, how to fill a path with an outline? (or both fill and stroke the path)在 iOS 上,如何用轮廓填充路径? (或填充和描边路径)
【发布时间】:2012-08-14 22:06:03
【问题描述】:

在 iOS 上,如果我们这样做

CGContextMoveToPoint(contextFoo, 0, 0);
CGContextAddLineToPoint(contextFoo, x, y);
CGContextAddLineToPoint(contextFoo, x2, y2);
// ... and many more CGContextAddLineToPoint

然后在这之后,如果我们执行CGContextStrokePath,我们会得到一个轮廓,或者如果我们CGContextFillPath,我们会得到“填充”,但我们不能同时做这两个,因为在描边或填充之后,“当前路径”消失了。我们如何才能填充和描边路径(例如想要黄色填充和橙色轮廓)?

我们可以将 MoveToAddLine 调用移动到一个函数中,然后调用该函数,进行填充,然后再次调用该函数,然后进行描边,但是有很多 xy这使得将它们全部传递给函数非常麻烦。有什么方法可以做到这一点?

【问题讨论】:

    标签: iphone ios ipad core-graphics


    【解决方案1】:
    CGContextDrawPath(context, kCGPathFillStroke);
    // to both Fill and Stroke your context
    // or kCGPathFill/kCGPathStroke to only fill/stroke
    

    您可以使用以下方法保存您的路径(以将其重复用于多个相同形状的东西):

    CGPathBeginPath/MoveToPoint/AddLine/...非常类似于CGContext/...

    你的例子:

    [[UIColor yellowColor] setFill];                      
    [[UIColor orangeColor] setStroke];
    
    CGContextDrawPath(context, kCGPathFillStroke);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多