Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PocketSVG在SwiftUI中显示整个SVG图像?_Svg_Swiftui_Uiviewrepresentable - Fatal编程技术网

如何使用PocketSVG在SwiftUI中显示整个SVG图像?

如何使用PocketSVG在SwiftUI中显示整个SVG图像?,svg,swiftui,uiviewrepresentable,Svg,Swiftui,Uiviewrepresentable,我的源代码非常简单,如下所示: // // SVGImage.swift // WorldRoad // // Created by norains on 2019/11/26. // Copyright © 2019 norains. All rights reserved. // import PocketSVG import SwiftUI struct SVGImage: UIViewRepresentable { func makeUIView(context:

我的源代码非常简单,如下所示:

//
//  SVGImage.swift
//  WorldRoad
//
//  Created by norains on 2019/11/26.
//  Copyright © 2019 norains. All rights reserved.
//

import PocketSVG
import SwiftUI

struct SVGImage: UIViewRepresentable {

    func makeUIView(context: Context) -> SVGImageView {
        let url = Bundle.main.url(forResource: "tiger", withExtension: "svg")!
        let svgImageView = SVGImageView.init(contentsOf: url)
        //svgImageView.frame = view.bounds //Could not set the frame here
        svgImageView.contentMode = .scaleAspectFit
        
        return svgImageView
    }

    func updateUIView(_ view: SVGImageView, context: Context) {
        
    }
}

struct SVGImage_Previews: PreviewProvider {
    static var previews: some View {
        return SVGImage()
    }
}

但它的显示是这样的:

看起来视图比屏幕大

正常人应该是这样的:


我怎么办?谢谢大家!

如果将
SVGImageView
嵌入
UIView
中,它将起作用,如下所示:

import PocketSVG
import SwiftUI

struct SVGImage: UIViewRepresentable {
    func makeUIView(context: Context) -> UIView {
        let svgView = UIView(frame: UIScreen.main.bounds)
        let url = Bundle.main.url(forResource: "tiger", withExtension: "svg")!
        let svgImageView = SVGImageView.init(contentsOf: url)
        svgImageView.frame = svgView.bounds
        svgImageView.contentMode = .scaleAspectFit
        svgView.addSubview(svgImageView)

        return svgView
    }

    func updateUIView(_ view: UIView, context: Context) {

    }
}

struct SVGImage_Previews: PreviewProvider {
    static var previews: some View {
        return SVGImage()
    }
}

@norains通过将
SVGImageView
嵌入
UIView
来修复它。