2

我有一个 CAShapeLayer,它的形状来自路径。这将创建一个可以操作的图层对象,例如移动和旋转。我的问题是我需要图层对象由多个路径组成。例如想象美国地图;有主要的形状,还有阿拉斯加。两种形状都没有连接,但它们是同一个实体,我需要它们成为单个 CAShapeLayer 中的单个对象,这样当我移动图层时,US 和 Alaska 都会一起移动。

    UIBezierPath*    ahPath = [self mydPath];     

    CAShapeLayer  *shapeLayer = [CAShapeLayer layer];

    shapeLayer.path = ahPath.CGPath;

    ...

    [self.layer addSublayer:shapeLayer];
4

2 回答 2

2

在您描述的情况下,我将制作一个代表美国的 CAShapeLayer 和一个代表州的单独的 CAShapeLayer,然后将州图层添加到美国图层。移动 US 层会自动移动 state 层。优点是您可以对美国和各州进行不同的着色。

于 2011-02-12T10:34:21.457 回答
0

另请注意,aCGPath可以包含多个子路径,因此一个CGPath可以包含 US 和 Alaska。检查CGPath 参考中的概述。 

于 2011-06-30T06:28:16.983 回答