gpt4 book ai didi

ios - Swift SVG 填充颜色到 SVG 图像

转载 作者:行者123 更新时间:2023-11-28 12:18:13 24 4
gpt4 key购买 nike

我正在使用 SVGKit 来显示图像

https://github.com/SVGKit/SVGKit/

如何为 SVGImage 应用填充颜色

let namSvgImgVar = SVGKImage(named: namSvgImg)
namSvgImgVar.setFilColor()

想实现这个setFilColor函数

最佳答案

Wish Swift 在他们的下一个版本中添加此功能

经过一场噩梦,我为
想出了这个解决方案 在 Swift 中使用 SVG,它会自动适应 View,并且只需一行代码即可为其添加填充颜色

这是给所有不想像我一样挣扎的人

|*|用法:

let svgImgVar = getSvgImgFnc("svgImjFileName", ClrVar : ClrVar)

// Can use this Image anywhere in your code

|*|步骤:

我使用了简单的 SwiftSVG从 SVG 文件获取 UIView 的库

|*|安装SwiftSVG图书馆

1)使用pod安装:

//对于 Swift 3

pod 'SwiftSVG'

//对于 Swift 2.3

pod 'SwiftSVG', '1.1.5'

2) 添加框架

Goto AppSettings
-> General Tab
-> Scroll down to Linked Frameworks and Libraries
-> Click on plus icon
-> Select SVG.framework

3) 在项目的任意位置添加以下代码

func getSvgImgFnc(svgImjFileNameVar: String, ClrVar: UIColor) -> UIImage
{
let svgURL = NSBundle.mainBundle().URLForResource(svgImjFileNameVar, withExtension: "svg")
let svgVyuVar = UIView(SVGURL: svgURL!)

/* The width, height and viewPort are set to 100

<svg xmlns="http://www.w3.org/2000/svg"
width="100%" height="100%"
viewBox="0 0 100 100">

So we need to set UIView Rect also same
*/

svgVyuVar.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
for svgVyuLyrIdx in svgVyuVar.layer.sublayers!
{
for subSvgVyuLyrIdx in svgVyuLyrIdx.sublayers!
{
if(subSvgVyuLyrIdx.isKindOfClass(CAShapeLayer))
{
let SvgShpLyrIdx = subSvgVyuLyrIdx as? CAShapeLayer
SvgShpLyrIdx!.fillColor = ClrVar.CGColor
}
}
}
return svgVyuVar.getImgFromVyuFnc()
}

extension UIView
{
func getImgFromVyuFnc() -> UIImage
{
UIGraphicsBeginImageContext(self.frame.size)

self.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()
return image!
}
}

关于ios - Swift SVG 填充颜色到 SVG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45717498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com