2

我正在尝试将 SVGKit (https://github.com/SVGKit/SVGKit) 用于处理地理地图的 iOS 项目。

此时,我可以使用 CALayer 对象访问地图上的特定区域。这让我可以访问该区域周围的矩形。

这是我用于此的代码:

CALayer *layer=[svgView.document layerWithIdentifier:@"myLayerID"];
[layer setBackgroundColor:[UIColor orangeColor].CGColor];

if( [layer isKindOfClass:[CAShapeLayer class]] )
{
    CAShapeLayer* shapeLayer = (CAShapeLayer*) layer;
    NSLog(@"That is good so far!");
    layer.mask=shapeLayer;
}

但我需要访问地图的精确区域;不仅是周围的矩形,为了突出它。我有一种阅读我应该使用 CGPathRef 和面具。

我该怎么做?

感谢您的任何提示。

4

1 回答 1

0

当您找到 CALayer 时,将其转换为 CAShapeLayer(如果可以;如果您有正确的层,这应该可以正常工作)。

if( [layer isKindOfClass:[CAShapeLayer class]] )
{
   CAShapeLayer* shapeLayer = (CAShapeLayer*) layer;

   // Now you have access to lots more Apple methods
}

然后你可以改变线宽、填充颜色等——各种时髦的东西。

还可以查看 CALayer.shadow* - Apple 提供的各种功能,这些功能将自动突出显示图层的可见部分。

于 2012-12-26T18:12:48.903 回答