我一直在寻找答案。我还在加快 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 实际上不会导致显示时旋转元素。
有什么线索吗?