我知道如何绘制一条简单的线条:
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0);
CGContextMoveToPoint(context, x, y);
CGContextAddLineToPoint(context, x2, y2);
CGContextStrokePath(context);
Run Code Online (Sandbox Code Playgroud)
我知道如何做一个渐变矩形,ig:
CGColorSpaceRef myColorspace=CGColorSpaceCreateDeviceRGB();
size_t num_locations = 2;
CGFloat locations[2] = { 1.0, 0.0 };
CGFloat components[8] = { 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0 };
CGGradientRef myGradient = CGGradientCreateWithColorComponents(myColorspace, components, locations, num_locations);
CGPoint myStartPoint, myEndPoint;
myStartPoint.x = 0.0;
myStartPoint.y = 0.0;
myEndPoint.x = 0.0;
myEndPoint.y = 10.0;
CGContextDrawLinearGradient (context, myGradient, myStartPoint, myEndPoint, 0);
Run Code Online (Sandbox Code Playgroud)
但是我怎么能画一条渐变的线条,ig从黑色渐变到白色(也可能在另一边渐渐变成黑色)?
iOS 5改变了内置Google Maps App绘制路线的方式:

我现在想在我自己的应用程序中复制路径叠加的设计,但我目前只能绘制一条纯蓝线.我想添加渐变,边框和发光的3D效果.有关如何实现这一目标的任何想法?
目前我正在使用以下代码:
CGContextSetFillColorWithColor(context, fillColor.CGColor);
CGContextSetLineJoin(context, kCGLineJoinRound);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, lineWidth);
CGContextAddPath(context, path);
CGContextReplacePathWithStrokedPath(context);
CGContextFillPath(context);
Run Code Online (Sandbox Code Playgroud)
导致一条相当难看的线:

谢谢!
更新:该解决方案应适用于iOS 4.0及更高版本.
我想根据速度等条件在折线视图上应用渐变.我能够MKPolyLineRenderer使用自定义笔触和填充进行子类绘制,但只沿路径使用相同的颜色.
我看到了其他类似的问题:从圆圈或圆环 或OSX中绘制线段,如何渐变填充路径笔划?,但这不是我想要的.如果我理解正确,就不能用这些方法填充下面这样的路径.至少不作为一个整体对待.

一个非常相似的问题是Gradient Polyline和MapKit ios.但是它为点之间的每个段添加了叠加,我认为这不是太有效.
这是唯一可行的方法吗?(我需要绘制数百甚至数千个这些段...)如何轻松实现?
谢谢
我正在制作一个简单的绘图程序.到目前为止,我能够使用给定的颜色描绘路径并且一切都很好.我想知道是否有办法用纹理而不是颜色来抚摸它.比方说,我想给路径看铅笔线.关于如何做到这一点的任何想法?
在此先感谢您的帮助!