我需要绘制很多行。
我正在使用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;
如果直线是水平的(如蓝色和红色) - 一切都很好,效果很好。 但是,如果我绘制倾斜线,或直线然后平铺 - 结果不好。 这是图像链接:左侧 - 我需要什么,右侧 - 结果是什么:example
所以,据我所知 - 我需要旋转渐变以匹配线条。但我无法想象如何实现这一点。
此外,有些线条可能具有锯齿形状,如图所示:example
有人可以帮我解决这个问题吗?或者建议另一种绘制线条的方法。 谢谢!
答案 0 :(得分:1)
您只能绘制水平线并使用变换旋转它们。但如果你需要一条曲线,那么一切都会复杂得多。
此外,您可以创建渐变并绘制它而不是平铺图像。