Using Macaw master branch (for Swift Package Manager reasons).
The goal is to just get SVGView
to fit inside the frame. The border I draw around SVGViewRepresentable
correctly confirms the desired frame size. But .scaleAspectFit
just isn't giving the result of scaling up/down SVGView
to fit the frame.
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)
}
}
}