一个用于显示 SVG(可缩放矢量图形)的 SwiftUI 视图,它使用 WKWebView。
在 SwiftUI 的 SVG Shaper 中的用法示例(它是显示左上角 SVG 的视图):
注意:SVG Shaper 用于将 SVG 转换为 SwiftUI *源代码*(然后进行编译)。 SVGWebView
用于在*运行时*显示 SVG 资源(例如,从 bundle 或 web 加载)。 它们用于不同的目的。
这只是一个单独的文件,SVGWebView.swift
文件足够小,可以直接复制到您的项目中。 但它也可以作为 SwiftPM 包嵌入。
重要:在 macOS 上,WKWebView
需要“传出连接”(客户端)授权才能运行,否则它将显示为空白。 iOS 似乎不需要任何额外的权限。
使用 iOS Xcode 预览时,效果不太好,最好在真实的模拟器中进行测试。
包 URL 是:https://github.com/ZeeZide/SVGWebView.git
只需将 SVG 字符串传递给 View。 例如
import SwiftUI
import SVGWebView
struct ContentView: View {
var body: some View {
SVGWebView(svg:
"""
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 100 100">
<rect x="10" y="10"
width="80" height="80"
fill="gold" stroke="blue"
stroke-width="4" />
</svg>
"""
)
.frame(width: 300, height: 200)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
SVGWebView 由 ZeeZide 提供。 我们喜欢反馈、GitHub 星星、酷炫的合同工作,大概任何你能想到的赞美形式。