2

我尝试以绘制路径具有渐变的方式修改 Apple 的 Breadcrumb 示例。我不能让我工作。路径的颜色是黑色而不是渐变。有人有想法吗?

if (path != nil)
{

    CGContextAddPath(context, path);
    CGContextSetLineJoin(context, kCGLineJoinRound);
    CGContextSetLineCap(context, kCGLineCapRound);
    CGContextSetLineWidth(context, lineWidth);

    CGContextReplacePathWithStrokedPath(context);
    path = CGContextCopyPath(context);

    CGContextAddPath(context, path);

    CGContextSaveGState(context); {
        CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
        CGGradientRef gradient = CGGradientCreateWithColors(rgb, (__bridge CFArrayRef)@[
                                                            (__bridge id)[UIColor greenColor].CGColor,
                                                            (__bridge id)[UIColor redColor].CGColor
                                                            ], (CGFloat[]){ 0.0f, 1.0f });
        CGColorSpaceRelease(rgb);

     CGPoint startPoint = CGPointMake(MKMapRectGetMidX(clipRect), MKMapRectGetMinY(clipRect));
     CGPoint endPoint = CGPointMake(MKMapRectGetMidX(clipRect), MKMapRectGetMaxY(clipRect));

        CGContextClip(context);
        CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
        CGGradientRelease(gradient);
    } CGContextRestoreGState(context);

    CGContextAddPath(context, path);
    CGPathRelease(path);

    CGContextDrawPath(context, kCGPathFillStroke);

}
4

0 回答 0