SVGWebView

SwiftUI Swift5.3 macOS iOS Build and Test

一个用于显示 SVG(可缩放矢量图形)的 SwiftUI 视图,它使用 WKWebView

SwiftUI 的 SVG Shaper 中的用法示例(它是显示左上角 SVG 的视图):SVG Shaper Screenshot

注意:SVG Shaper 用于将 SVG 转换为 SwiftUI *源代码*(然后进行编译)。 SVGWebView 用于在*运行时*显示 SVG 资源(例如,从 bundle 或 web 加载)。 它们用于不同的目的。

用法

这只是一个单独的文件,SVGWebView.swift 文件足够小,可以直接复制到您的项目中。 但它也可以作为 SwiftPM 包嵌入。

重要:在 macOS 上,WKWebView 需要“传出连接”(客户端)授权才能运行,否则它将显示为空白。 iOS 似乎不需要任何额外的权限。

使用 iOS Xcode 预览时,效果不太好,最好在真实的模拟器中进行测试。

添加包

包 URL 是:https://github.com/ZeeZide/SVGWebView.git

在 SwiftUI 应用中使用

只需将 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 星星、酷炫的合同工作,大概任何你能想到的赞美形式。