我使用"DrawLinearGradient“函数绘制渐变线。但是我所用的两种颜色在线上并不是等分的。
CGColorSpace colorSpace = CGColorSpace.CreateDeviceRGB();
CGColor[] colors = {UIColor.Red.CGColor,UIColor.Green.CGColor};
float[] locations = {0.0f,0.5f,0.5f,1.0f};
CGGradient gradient = new CGGradient(colorSpace,colors,locations);
ColorMessage.FontSize = width;
context.SetLineWidth(width);
context.SaveState();
context.Clip();
context.DrawLinearGradient(gradient,penVertices[0],penVertices[count-1],0);
context.StrokePath();
gradient.Dispose();
colorSpace.Dispose();
context.RestoreState();发布于 2013-04-16 10:07:40
我假设Mono实现具有与原始C实现相同的需求。
从CGGradientCreateWithColors(colorSpace, colors, locations[])文档(应该对应于Mono中的new CGGradient(colorSpace,colors,locations); ),您可以阅读
locations数组应该包含与colors数组相同的项数。
然而,在您的代码中,您传递的是两种颜色,而不是四个位置。
既然你说的是“在行中平分”,你可能应该重复两次。
CGColor[] colors = {UIColor.Red.CGColor, UIColor.Red.CGColor, UIColor.Green.CGColor ,UIColor.Green.CGColor};
float[] locations = {0.0f,0.5f,0.5f,1.0f};https://stackoverflow.com/questions/16033481
复制相似问题