我有一个自定义UIView,它有一个UIImageView作为'子视图来显示图像,一个CAShapeLayer作为一个子图层来绘制它。 UIView是可缩放的,我使用UIPinchGestureRecognizer来放大和缩小视图。我可以使用CGPathRef在视图上绘制直线。问题是,当我捏缩放视图时,我绘制的线条也会变焦并变粗。如何放大视图,保持线条变薄?
在缩放之前(绿线是我画的):
当我缩放时:
我想要的是,线条要像我放大之前那样细。 我试着:
CGMutablePath path = CGPathCreateMutable();
//line drawing code here
//scale path to 1.0?
CGAffineTransform transform = CGAffineTransformMakeScale(1.0, 1.0);
CGPathRef transformedPath = CGPathCreateCopyByTransformingPath(path, &transform);
self.drawingLayer.path = transformedPath;
CGPathRelease(path);
CGPathRelease(transformedPath);
如何在缩放时防止路径宽度放大?
答案 0 :(得分:0)
您需要将线宽除以缩放系数。默认线宽为1。
因此,创建相同的属性,并在应用缩放时用手势划分它。
即缩放= 4.0然后行宽= 1.0 / 4.0
和缩放是2然后1.0 / 2.0
相同希望它有用