我需要画很多线。
我正在使用UIBezierPath绘制线条,并使用小的5x10图案图像进行渐变。下面是代码的一部分:
l1 = [UIBezierPath bezierPath];
[l1 moveToPoint:CGPointMake(76, 373)];
[l1 addLineToPoint:CGPointMake(940, 373)];
CAShapeLayer *pathLayer = [CAShapeLayer layer];
CGRect pathRect = self.view.frame;
path = l1;
pathLayer.frame = self.view.bounds;
pathLayer.bounds = pathRect;
pathLayer.geometryFlipped = NO;
pathLayer.path = path.CGPath;
pathLayer.strokeColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"line1Pattern.png"]];
pathLayer.fillColor = nil;
pathLayer.lineWidth = 8.0f;
pathLayer.opacity = 1;
[pathLayer setShadowOffset:CGSizeMake(0, 5)];
[pathLayer setShadowOpacity:0.5];
pathLayer.lineCap = kCALineCapRound;
pathLayer.lineJoin = kCALineJoinRound;
[pathArray addObject:pathLayer];
self.pathLayer = pathLayer;
如果线是直线水平(如蓝色和红色) - 一切都很好,结果很棒。但是如果我画倾斜线,或者画直线然后平铺 - 结果是不行的。这是图像的链接:左侧 - 我需要什么,右侧 - 什么亩结果:示例
所以,据我了解 - 我需要旋转渐变以匹配线条。但我无法想象如何实现这一点。
此外,有些线条可能具有锯齿形,如下图所示:示例
谁能帮我解决这个问题?或者建议另一种画线的方法。谢谢!
您只能绘制水平线并使用变换旋转它们。但是如果你需要一条曲线,那么一切都会复杂得多。
您还可以创建渐变并绘制它而不是平铺图像。