【问题标题】:How to change color of svg images in ios?如何在ios中更改svg图像的颜色?
【发布时间】:2016-11-18 14:22:03
【问题描述】:

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

 self.badmintonImgView.tintColor = [UIColor orangeColor];

我需要更改图像的颜色。请推荐

【问题讨论】:

  • 试试这个... .theImageView.image = [theImageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; [theImageView setTintColor:[UIColor redColor]];
  • @SudheerKolasani:试过了,结果一样。
  • @SudheerKolasani:不走运。尝试了这些类别。
  • SVGKit 不能让您访问 SVG 的当前颜色吗?我自己的 SVGgh 允许您有选择地为标有 currentColor 的元素着色。

标签: ios objective-c xcode svg


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    斯威夫特

    使用 Swift 更改 SVG 的颜色:

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

    【讨论】:

      【解决方案3】:

      这对我有用:

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

      记得将图像添加到assets 文件夹。 我希望它对你有帮助。

      【讨论】:

        【解决方案4】:

        如下操作可能对你有用。

        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;
                    }
                }
            }
        }
        

        【讨论】:

        • 我在使用 SVGKit 时遇到错误,cocoapods.org/pods/SVGKit。你能帮忙吗?
        • 在 SVGKit-iOS 目标 > 构建设置中找到“Other C Flags”和“Other C++ Flags”部分并添加以下内容:-fembed-bitcode
        • 试试上面的解决方案
        • 在 SVGKit-iOS 目标中添加相同的错误 > 构建设置找到“Other C Flags”和“Other C++ Flags”部分并添加以下内容:-fembed-bitcode
        • 我想你已经使用 pod.. 使用库了?
        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2020-09-20
          • 2021-08-11
          • 2013-09-15
          • 2018-11-25
          • 2020-12-25
          • 2020-05-07
          • 1970-01-01
          • 2012-08-12
          相关资源
          最近更新 更多