gpt4 book ai didi

ios - 在可缩放的 UIView 中保留 CAShapeLayer 的 lineWidth

转载 作者:行者123 更新时间:2023-12-01 19:45:42 29 4
gpt4 key购买 nike

我有一个自定义 UIView,它有一个 UIImageView 作为它的 subview 来显示图像和一个 CAShapeLayer 作为子层来绘制它。 UIView 是可缩放的,我使用 UIPinchGestureRecognizer 来放大和缩小 View 。我可以使用 CGPathRef 在 View 上绘制直线。问题是,当我捏​​缩放 View 时,我绘制的线条也会缩放并变粗。如何放大 View ,保持线条细?

缩放之前(绿线是我画的):

enter image description here

当我放大时:

enter image description here

我想要的是,线条要像我放大之前一样细。
我试过了:

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);

缩放时如何防止路径宽度变大?

最佳答案

您需要将线宽除以缩放因子。默认线宽为 1。

因此,为相同创建属性,当您使用手势应用缩放时将其划分。

即缩放 = 4.0 然后线宽 = 1.0/4.0

与缩放为 2 然后为 1.0/2.0 相同

希望对您有所帮助

关于ios - 在可缩放的 UIView 中保留 CAShapeLayer 的 lineWidth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48616317/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com