这段代码不起作用,我不知道为什么。 只需创建一个三角形并剪辑然后绘制渐变
// 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);
答案 0 :(得分:0)
上传此问题后,我发现我的错误,颜色应为CGColor, 像这样的[UIColor redColor] .cgColor。