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

时间:2016-07-15 11:28:05

标签: ios objective-c xcode svg

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

 self.badmintonImgView.tintColor = [UIColor orangeColor];

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

5 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:2)

迅速

要使用Swift更改SVG的颜色:

badmintonImgView.image = badmintonImgView.image?.withRenderingMode(.alwaysTemplate)
badmintonImgView.tintColor = UIColor.orange

enter image description here

答案 2 :(得分: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;
            }
        }
    }
}

答案 3 :(得分:0)

试试这个 [self.badmintonImgView setTintColor:[UIColor redColor]];

答案 4 :(得分:0)

这对我有用:

UIImage * imageOrange = [[UIImage imageNamed:@"yourSVGImageName"] imageWithTintColor:UIColor.orangeColor];
UIImageView * yourImageView = [[UIImageView alloc] initWithImage: imageOrange];

请记住将图像添加到assets文件夹中。 希望对您有帮助。