您的位置:首页 > 其它

Quartz2D简单绘制之渐变色

2011-12-04 00:35 267 查看
View Code

// 渐变色 gradient
CGFloat colors [] = {
1.0, 1.0, 1.0, 1.0,
1.0, 0.0, 0.0, 1.0,
0.0, 0.0, 0.0, 1.0
};
CGFloat locations[] = {
0.0f,0.5f,1.0f
};
CGColorSpaceRef baseSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColorComponents(baseSpace, colors, locations, sizeof(colors)/(sizeof(colors[0])*4));
CGColorSpaceRelease(baseSpace), baseSpace = NULL;

CGContextRef context = UIGraphicsGetCurrentContext();
CGRect aRect = CGRectInset(CGContextGetClipBoundingBox(context), 50.0f, 20.0f);
CGContextSaveGState(context);                // SaveGState
CGContextClipToRect(context, aRect);

CGPoint startPoint = CGPointMake(CGRectGetMidX(aRect), CGRectGetMinY(aRect));
CGPoint endPoint = CGPointMake(CGRectGetMidX(aRect), CGRectGetMaxY(aRect));

// kCGGradientDrawsBeforeStartLocation    开始位置之外的也画
// kCGGradientDrawsAfterEndLocation        结束位置之外的也画
// 0                                    正常状态
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
CGGradientRelease(gradient), gradient = NULL;

CGContextRestoreGState(context);            // RestoreGState
CGContextDrawPath(context, kCGPathStroke);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: