Я пытаюсь вызвать нажатое сообщение, когда я отпускаю LongPressGesture внутри минимального расстояния, но этот код вместо этого распечатывает сообщение, как только я долго нажимаю на изображение. Как я могу это решить?
struct ContentView: View {
@GestureState private var isDetectingPress = false
var body: some View {
Image(systemName: "trash")
.resizable().aspectRatio(contentMode: .fit)
.frame(width: 100, height: 100)
.scaleEffect(isDetectingPress ? 0.5 : 1)
.animation(.easeInOut(duration: 0.2))
.gesture(LongPressGesture(minimumDuration: 0.01).sequenced(before:DragGesture(minimumDistance: 100).onEnded {_ in
print("Ended")
})
.updating($isDetectingPress) { value, state, _ in
switch value {
case .second(true, nil):
state = true
// The message below should be printed when I release the long press
print("pressed")
case .second(true, _):
state = false
break
default:
break
}
})
}
}
minimumDistance: 100
? - person Asperi   schedule 01.08.2020DragGesture(minimumDistance: 0)
был необходим для сохранения состояния до тех пор, пока вы не продолжите движение, но он вызвал onEnded сразу после отпускания пальца (ваш нажатый случай), но теперь он ждет перетаскивания на 100 и не работает, поэтому нет onEnded. Не могли бы вы вместо этого объяснить поведение? - person Asperi   schedule 01.08.2020Button
(с изображением внутри)? - person pawello2222   schedule 01.08.2020