首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我使用"DrawLinearGradient“函数绘制渐变线。但是我所用的两种颜色在线上并不是等分的。

我使用"DrawLinearGradient“函数绘制渐变线。但是我所用的两种颜色在线上并不是等分的。
EN

Stack Overflow用户
提问于 2013-04-16 09:33:45
回答 1查看 1.1K关注 0票数 0

我使用"DrawLinearGradient“函数绘制渐变线。但是我所用的两种颜色在线上并不是等分的。

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

发布于 2013-04-16 10:07:40

我假设Mono实现具有与原始C实现相同的需求。

CGGradientCreateWithColors(colorSpace, colors, locations[])文档(应该对应于Mono中的new CGGradient(colorSpace,colors,locations); ),您可以阅读

locations数组应该包含与colors数组相同的项数。

然而,在您的代码中,您传递的是两种颜色,而不是四个位置。

既然你说的是“在行中平分”,你可能应该重复两次。

代码语言:javascript
复制
CGColor[] colors = {UIColor.Red.CGColor, UIColor.Red.CGColor, UIColor.Green.CGColor ,UIColor.Green.CGColor};
float[] locations = {0.0f,0.5f,0.5f,1.0f};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16033481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档