我一直在寻找答案。我仍在加快iOS开发者的步伐,因此我可以肯定的是,我在这里可能很孤单。但是,那里完全没有答案,这使我想知道是否真的有答案。

达成协议:我正在使用CGLayer生成一个相当基本的矢量多边形:

- (CGLayerRef)getASegment
{
    CGSize  layerSize = s_viewRects[kASegment].size;

    CGLayerRef  theLayer = CGLayerCreateWithContext ( UIGraphicsGetCurrentContext(),
        layerSize, nil );

    CGContextRef context = CGLayerGetContext ( theLayer );

    CGContextAddLines ( context, s_shapePoints, 7 );

    return theLayer;
}


s_viewRects是一个静态数组,包含放置在整个图像中的容器矩形,并且s_shapePoints包含一个CGPoint结构数组,该数组绘制了变形的六边形。

现在,我想重新使用这种形状。为了适应所有用途,需要翻转和旋转它(为了记录起见,这些是“ LED”显示屏中的“段”)。

我的形状很好。没问题。

问题在于将其旋转以重复使用。似乎没有任何方法可以真正旋转CGLayer。旋转CALayers的方法很多,但CGLayers没有。我很乐意使用CALayer,但CALayers似乎都专注于栅格图形,并且我需要矢量图形。

我相信肯定有解决这个问题的明显方法。到目前为止,我所看到的唯一方法是旋转整个目标图形上下文,绘制形状,然后取消旋转上下文。等同于转动房屋以松开灯泡。

使它起作用的唯一方法是在分别绘制每个线段之前实际变换点,这意味着不会重复使用。在创建形状期间执行CGContextRotateCTM时,显示时实际上不会导致旋转的元素。

有什么线索吗?

最佳答案

到目前为止,我所看到的唯一方法是旋转整个目标图形上下文,绘制形状,然后取消旋转上下文。等同于转动房屋以松开灯泡。


我可以肯定这是您的解决方案。这就是使用CGContextRef进行绘制的方式。


  我很乐意使用CALayer,但CALayers似乎都专注于栅格图形,并且我需要矢量图形。


您是否尝试过使用CAShapeLayer

关于iphone - iOS:如何轮换CGLayer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11293119/

10-12 05:50