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