0

我需要画很多线。

我正在使用 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;

如果这条线是水平的(如蓝色和红色) - 一切都很好,结果很好。但是如果我画倾斜线,或者笔直然后平铺 - 结果就不行了。这是图像的链接:左侧 - 我需要什么,右侧 - 什么 mu 结果:示例

所以,据我了解 - 我需要旋转渐变以匹配线条。但我无法想象如何实现这一点。

此外,有些线可能具有像此图上的之字形形式:示例

谁能帮我解决这个问题?或者建议另一种画线的方法。谢谢!

4

1 回答 1

1

您只能绘制水平线并使用变换旋转它们。但如果你需要一条曲线,那么一切都会复杂得多。

您也可以创建渐变并绘制它而不是平铺图像。

于 2012-06-16T16:43:50.593 回答