Как добавить масштабируемый SVG в SwiftUI?
У меня есть карта, которую я хочу добавить в свое приложение, и в настоящее время я изучаю SwiftUI. Я хочу вставить SVG, где я могу прокручивать, масштабировать, устанавливать начальные координаты x и y / начальное масштабирование, максимальное масштабирование и нажимать на элемент, чтобы открыть страницу. Я знаю, что могу сделать это с помощью UIKit, но как мне это сделать с помощью SwiftUI? Если я не могу сделать это с SVG, как я могу сделать это с интерактивным растровым изображением?
изменить: вот мой код:
struct ContentView: View {
@State private var currentPosition: CGSize = .zero
@State private var newPosition: CGSize = .zero
@State private var scale: CGFloat = 1.0
@State private var currentAmount: CGFloat = 0
@State private var finalAmount: CGFloat = 1
var body: some View {
Image("SVG")
.frame(width: 1100, height: 1100)
.offset(x: self.currentPosition.width, y: self.currentPosition.height)
.gesture(DragGesture()
.onChanged { value in
self.currentPosition = CGSize(width: value.translation.width + self.newPosition.width, height: value.translation.height + self.newPosition.height)
}
.onEnded { value in
self.currentPosition = CGSize(width: value.translation.width + self.newPosition.width, height: value.translation.height + self.newPosition.height)
print(self.newPosition.width)
print(self.newPosition.height)
self.newPosition = self.currentPosition
}
)
.scaleEffect(finalAmount + currentAmount)
.gesture(
MagnificationGesture()
.onChanged { amount in
self.currentAmount = amount - 1
}
.onEnded { amount in
self.finalAmount += self.currentAmount
self.currentAmount = 0
}
)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}