我想改变svg图像的颜色。我使用下面的代码,它隐藏图像并用颜色集填充整个图像视图。
self.badmintonImgView.tintColor = [UIColor orangeColor];
我需要改变图像的颜色。请建议
答案 0 :(得分:9)
如果 SVG
在 Assets.xcassets
中,您可以告诉 Xcode 将图像视为图标:
首先,在资产目录中选择您的 SVG
图片
然后将渲染模式设置为模板图像
答案 1 :(得分:2)
迅速
要使用Swift更改SVG的颜色:
badmintonImgView.image = badmintonImgView.image?.withRenderingMode(.alwaysTemplate)
badmintonImgView.tintColor = UIColor.orange
答案 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
文件夹中。
希望对您有帮助。