如何在ios中更改svg图像的颜色?

use*_*ser 4 xcode svg objective-c ios

我想更改 svg 图像的颜色。我正在使用以下代码,它隐藏图像并使用颜色集填充整个图像视图。

 self.badmintonImgView.tintColor = [UIColor orangeColor];
Run Code Online (Sandbox Code Playgroud)

我需要更改图像的颜色。请建议

אור*_*hpt 13

如果在SVGAssets.xcassets,您可以告诉 Xcode 将图像视为图标:

首先,SVG在资产目录中选择您的图像

然后将渲染模式设置为模板图像


Mar*_*rcy 8

迅速

要使用 Swift 更改 SVG 的颜色:

badmintonImgView.image = badmintonImgView.image?.withRenderingMode(.alwaysTemplate)
badmintonImgView.tintColor = UIColor.orange
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Hit*_*esh 0

执行以下操作可能适合您。

SVGKImage *svgImage = [SVGKImage imageNamed:@"YOURIMAGENAME"];
SVGKLayeredImageView *svgImageView = [[SVGKLayeredImageView alloc] initWithSVGKImage:svgImage];
[capturedImageView addSubview:svgImageView];

CALayer* layer = svgImageView.layer;
for (CALayer *subLayer in layer.sublayers) {

    for (CALayer *subSubLayer in subLayer.sublayers) {


        for (CALayer *subSubSubLayer in subSubLayer.sublayers) {

            if( [subSubSubLayer isKindOfClass:[CAShapeLayer class]]){
                CAShapeLayer* shapeLayer = (CAShapeLayer*)subSubSubLayer;
                shapeLayer.fillColor = [UIColor BlackColor].CGColor;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)