我正在尝试在我的应用中创建“图案画笔描边”效果。我使用带有图案CGContextStrokePath
的{{1}}来实现此目的。这给了我以下问题。
当我画一条直线时,它的作用很奇妙,例如:
然而,当我画出对角线笔画时,我明白了:
而我实际上的目标是:
(图案的方向差异是这里的问题,而不是我粗制滥造的图像裁剪!)
到目前为止,我一直在努力寻找一种方法来控制图案平铺/显示的方向,但我还没有设法找到一种方法来做到这一点。任何人都可以启发我,或者告诉我应该怎么做呢?
目前的代码包括以下完整性。
UIColor
答案 0 :(得分:0)
我建议切换到使用CAShapeLayer,而不是使用CGContext。我在我的一个应用程序中使用了这种方法:
//call this on every drawRect: call.
-(void)makeLineLayer:(CALayer *)layer{
CAShapeLayer *line = [CAShapeLayer layer];
UIBezierPath *linePath=[UIBezierPath bezierPath];
[linePath moveToPoint:self.lineStart];
[linePath addLineToPoint:self.lineEnd];
[linePath setLineWidth:60.0];
line.path=linePath.CGPath;
line.fillColor = nil;
line.opacity = 1.0;
[layer addSublayer:line];
}
这将为您提供两点之间的界限。在此处,我建议您向CALayer
添加CAShapeLayer
,并将其contents
属性设置为您的图片。这是a link to an article describing how to tile an image in a CALayer。然后你需要计算CAShapeLayer
的角度并将CALayer
旋转那个角度。