gpt4 book ai didi

iphone - 转换一个描边的 CAShapeLayer

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:48 24 4
gpt4 key购买 nike

我有一个 CAShapeLayer,它包含一个 CGMutablePath,它周围有一个描边。在我的应用程序中,我转换此 CAShapeLayer 以在特定时间增加/减少它的大小。我注意到,当我转换 CAShapeLayer 时,stroke 也会发生转换。理想情况下,即使 CAShapeLayers 已转换,我也希望始终将 strokelineWidth 保持在 3。

我尝试在转换之前关闭笔划,然后再读取它,但没有成功:

subLayerShapeLayer.lineWidth = 0;
subLayerShapeLayer.strokeColor = nil;
self.layer.sublayerTransform = CATransform3DScale(self.layer.sublayerTransform, graphicSize.width / self.graphic.size.width, graphicSize.height / self.graphic.size.height, 1);
shapeLayer.strokeColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1].CGColor;;
shapeLayer.lineWidth = 3;

有谁知道我怎样才能完成这个任务?似乎它应该能够在以某种方式转换后重绘笔划。

最佳答案

转换 CGPath 本身而不是其绘制的表示(CAShapeLayer)。

仔细看看CGPathCreateMutableCopyByTransformingPath - CGPath Reference

CGPathCreateMutableCopyByTransformingPath

Creates a mutable copy of a graphics path transformed by a transformation matrix.

CGMutablePathRef CGPathCreateMutableCopyByTransformingPath(
CGPathRef path,
const CGAffineTransform *transform
);

参数

path 要复制的路径。

transform 指向仿射变换矩阵的指针,如果不需要变换则为 NULL。如果指定,Quartz 将转换应用于新路径的所有元素。返回值由 transform 参数转换的指定路径的新的可变副本。您有责任释放此对象。

可用性适用于 iOS 5.0 及更高版本。声明于CGPath.h

关于iphone - 转换一个描边的 CAShapeLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033536/

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