我一直在寻找答案。我仍在加快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/