在可缩放的 UIView 中保留 CAShapeLayer 的线宽
Preserve CAShapeLayer's lineWidth in a zoomable UIView
我有一个自定义的 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);
如何防止缩放时路径宽度变大?
需要用zoom分割线宽factor.By默认线宽为1。
因此创建 属性 同样的,当你应用缩放手势分割它时。
即缩放 = 4.0 然后线宽 = 1.0/4.0
和缩放比例为 2 然后 1.0/2.0 相同
希望对您有所帮助
我有一个自定义的 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);
如何防止缩放时路径宽度变大?
需要用zoom分割线宽factor.By默认线宽为1。
因此创建 属性 同样的,当你应用缩放手势分割它时。
即缩放 = 4.0 然后线宽 = 1.0/4.0
和缩放比例为 2 然后 1.0/2.0 相同
希望对您有所帮助