在封闭路径上绘制CGGradient

时间:2012-07-30 06:55:38

标签: ios quartz-graphics cgpath

如何在视图中的封闭路径上绘制CGGradient?我试图绘制渐变,但是,它是在视图本身上绘制的,而不是仅在我在视图中填充的CGPath中绘制。我想仅在填充路径上绘制渐变,而不是在视图本身上绘制。

1 个答案:

答案 0 :(得分:3)

  1. 保存上下文的状态。
  2. 在上下文中将路径设置为剪辑区域。
  3. 绘制渐变。
  4. 恢复上下文的状态。
  5. 示例:

    CGContextSaveGState(context);
    CGContextAddPath(context, myPath);
    CGContextClip(context);
    CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, kNilOptions);
    CGContextRestoreGState(context);