ios - 在封闭路径上绘制 CGGradient

标签 ios quartz-graphics cgpath

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

最佳答案

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

示例:

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

关于ios - 在封闭路径上绘制 CGGradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11716651/

相关文章:

ios - CGImageGetWidth(workingImage.CGImage) 和 workingImage.size.width 有区别吗?

objective-c - 将多个 CGPath 合并在一起以形成一条路径

ios - 编辑 CGPath 的 "vertices"?

objective-c - 使用 CAShapeLayer 对 CGMutablePathRef 进行动画处理

ios - 如何在 xCode 中动态对齐按钮

ios - 如何让工作preparForSegue :sender: XCode 6?

macos - 检测 CGAsociateMouseAndMouseCursorPosition

ios - 从 Swift 类在 Objective-C 类的类方法 (+) 中传递参数

ios - 如何在 Swift 3 中将数据转换为 Int?

iphone - 绘制,清除然后重绘问题 Quartz