核心图形未在裁剪矩形中绘制渐变颜色

时间:2019-03-28 08:03:02

标签: objective-c

这段代码不起作用,我不知道为什么。 只需创建一个三角形并剪辑然后绘制渐变

// create contect and save
        CGContextRef context = UIGraphicsGetCurrentContext();
        CGContextSaveGState(context);
        // create path
        CGMutablePathRef path = CGPathCreateMutable();
        CGPathMoveToPoint(path, NULL, 20, rect.size.height - 20);
        CGPathAddLineToPoint(path, NULL, rect.size.width / 2, 20);
        CGPathAddLineToPoint(path, NULL, rect.size.width - 20, rect.size.height - 20);
        CGPathCloseSubpath(path);
        CGContextAddPath(context, path);
        CGContextClip(context);
        // create gradient
        CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
        NSArray *colorArr = @[
                             (id)[UIColor blackColor],
                             (id)[UIColor whiteColor],
                             ];
        CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) colorArr, NULL);
        // rlease gradinet
        CGContextDrawLinearGradient(context, gradient, CGPointMake(rect.size.width / 2,rect.size.height - 20), CGPointMake(rect.size.width / 2, 20), 0);
        // restore context
        CGContextRestoreGState(context);

1 个答案:

答案 0 :(得分:0)

上传此问题后,我发现我的错误,颜色应为CGColor, 像这样的[UIColor redColor] .cgColor。