绘制光泽
在一个矩形上绘制光泽其实可以通过在原有色彩的基础上绘制一层透明度较高的渐变来实现。首先先看以前绘制渐变的函数。
void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor)
{
CGContextSaveGState(context);
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
NSArray *array = @[(__bridge id)startColor, (__bridge id)endColor];
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)array, (CGFloat[]){0.0, 1.0});
CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect));
CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect));
CGContextAddRect(context, rect);
CGContextClip(context);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGColorSpaceRelease(colorSpace);
CGGradientRelease(gradient);
CGContextRestoreGState(context);
}
我们可以利用此函数同时绘制色彩渐变与增加光泽效果,函数如下: