从多个CG路径构造CAShapeLayer

时间:2011-02-12 10:03:10

标签: uikit core-graphics quartz-graphics cgpath cashapelayer

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

    UIBezierPath*    ahPath = [self mydPath];     

    CAShapeLayer  *shapeLayer = [CAShapeLayer layer];

    shapeLayer.path = ahPath.CGPath;

    ...

    [self.layer addSublayer:shapeLayer];

2 个答案:

答案 0 :(得分:2)

在您描述的情况下,我将使用表示美国的CAShapeLayer和表示状态的单独CAShapeLayer,然后将状态图层添加到US图层。移动US图层会自动移动状态图层。优势在于你可以为美国着色并以不同的方式陈述。

答案 1 :(得分:0)

另请注意,CGPath可以包含多个子路径,因此一个CGPath可以包含美国和阿拉斯加。查看CGPath Reference中的概述。