Swift 5, iOS 13.x
Я получил это супер простое приложение, которое позволяет мне перетаскивать вид с помощью смещения с помощью SwiftUI, а когда оно останавливается, я сбрасываю смещение и положение. Работает хорошо в первый раз, но каждый раз, когда я go возвращаюсь, чтобы снова его перетащить, он прыгает, когда я отпускаю кнопку. Как я могу это исправить ... Я нашел что-то, что упомянул вставки? Это связано со вставками?
Теперь я знаю, что это отвечает на вопрос с помощью другого кода kontiki , но я хочу понять, что не так с моим решением.
struct ContentView: View {
@State var dragOffset = CGSize.zero
@State var position:CGPoint = CGPoint(x:0,y:0)
var body: some View {
VStack {
Circle()
.frame(width: 12, height: 128, alignment: .center)
}.offset(x: self.dragOffset.width, y: self.dragOffset.height)
.gesture(DragGesture(coordinateSpace: .global)
.onChanged({ ( value ) in
self.dragOffset = CGSize(width: value.translation.width, height: value.translation.height)
})
.onEnded { ( value ) in
self.dragOffset = .zero
self.position = value.location
}
).position(position)
}
}