【问题标题】:Horizontal Gradient with a rounded rect path?带有圆角矩形路径的水平渐变?
【发布时间】:2011-06-13 12:14:55
【问题描述】:

我有一个使用 CoreGraphics 绘制的自定义 UIView。使用 CoreGraphics,我将如何设置水平渐变并将其剪辑到我的圆角矩形路径,同时仍然使用阴影?我写了尽可能多的路径,我可以使用 setFill 用颜色填充它,但是渐变(也是水平的)不遵守路径...

编辑:自从发布(不久前)以来,我想出了如何做一个复杂的水平渐变,所以现在我唯一的问题是在我的 CGContext 的路径中绘制它。

【问题讨论】:

    标签: cocoa-touch ios uiview core-graphics gradient


    【解决方案1】:

    看来我已经找到了自己的答案:

    CGContextAddPath(context, path);
    CGContextClosePath(context);
    CGContextClip(context);
    CGContextDrawLinearGradient(context, gradient, startPt, endPt, 0);
    

    这些代码行完美地将其剪辑到圆角矩形的路径或任何所需的路径。

    【讨论】:

    • ClosePath 用于关闭打开的子路径。如果path 已经关闭,ClosePath 将什么也不做。除非path 出于某种原因特别是部分路径(在这种情况下,您应该将其名称更改为更具体的名称),否则关闭路径的时间是在path 中构建路径时,而不是之后。
    • 在我的例子中,它是一个开放的子路径,我把你的笔记考虑在内并对我的代码做了一点重构:D
    猜你喜欢
    • 2010-12-26
    • 1970-01-01
    • 2018-04-20
    • 2012-10-24
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多