我有一个CAShapeLayer
,其中包含一个CGMutablePath
,周围有一个笔划。在我的应用中,我将此CAShapeLayer
转换为在特定时间增加/减少它的大小。我注意到当我转换CAShapeLayer
时,stroke
也会被转换。理想情况下,即使lineWidth
转换,我也希望stroke
的{{1}}始终保持在3。
我尝试在转换之前关闭中风然后再读取它但是它不起作用:
CAShapeLayers
有谁知道我怎么能完成这项任务?似乎它应该能够以某种方式转换后重绘笔画。
答案 0 :(得分:3)
转换CGPath本身而不是其绘制的表示(CAShapeLayer)。
仔细查看CGPathCreateMutableCopyByTransformingPath - CGPath Reference
CGPathCreateMutableCopyByTransformingPath
创建由a转换的图形路径的可变副本 转换矩阵。
CGMutablePathRef CGPathCreateMutableCopyByTransformingPath(
CGPathRef path,
const CGAffineTransform *transform
);
<强>参数强>
path
要复制的路径。
transform
指向仿射变换矩阵的指针,如果不需要转换则为NULL。如果指定,Quartz将转换应用于新路径的所有元素。
回报价值
由transform参数转换的指定路径的新的可变副本。您有责任释放此对象。
状况 适用于iOS 5.0及更高版本。 宣告进入 CGPath.h