【问题标题】:Draw CGGradient On Enclosed Path在封闭路径上绘制 CGGradient
【发布时间】:2012-07-30 06:55:37
【问题描述】:

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

【问题讨论】:

    标签: ios quartz-graphics cgpath


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

    例子:

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

    【讨论】:

    • 谢谢。如何绘制具有中心颜色且顶部和底部颜色相同的渐变?我有这样的数组 CFArrayRef colors = (__bridge CFArrayRef) [NSArray arrayWithObjects:(id)lightGradientColor.CGColor, (id)darkGradientColor.CGColor, (id)lightGradientColor.CGColor, nil];但浅色只在顶部。
    • 你应该为此发布一个新问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多