Использование главной ветви Macaw (по соображениям Swift Package Manager).
Цель состоит в том, чтобы просто поместить SVGView
в рамку. Граница, которую я рисую вокруг SVGViewRepresentable
, правильно подтверждает желаемый размер кадра. Но .scaleAspectFit
просто не дает результата масштабирования вверх / вниз SVGView
, чтобы соответствовать кадру.
struct SVGViewRepresentable: UIViewRepresentable {
var svgName: String
let size: CGSize
func makeUIView(context: Context) -> SVGView {
let node = try! SVGParser.parse(resource: svgName)
let svgView = SVGView(node: node, frame: CGRect(origin: CGPoint.zero, size: size))
svgView.backgroundColor = UIColor.clear
svgView.layer.borderWidth = 1.0
svgView.layer.borderColor = UIColor.blue.cgColor
svgView.contentMode = .scaleAspectFit
return svgView
}
func updateUIView(_ uiView: SVGView, context: Context) {
}
}
struct MacawSVGView: View {
var body: some View {
GeometryReader { (geometry: GeometryProxy) in
SVGViewRepresentable(svgName: "Tiger", size: geometry.size)
.frame(width: geometry.size.width, height: geometry.size.height)
.border(Color.red)
}
}
}