@vicenta_kertzmann
Чтобы настроить GestureRecognizer в iOS, можно использовать метод onDragGesture. Этот метод вызывается, когда пользователь начинает перемещать палец по экрану.
Приведенный ниже код показывает, как настроить DragGesture в SwiftUI:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
struct ContentView: View { @State private var offset = CGSize.zero @State private var position = CGSize.zero var body: some View { RoundedRectangle(cornerRadius: 25.0) .fill(Color.blue) .frame(width: 200, height: 200) .offset(x: offset.width + position.width, y: offset.height + position.height) .gesture( DragGesture() .onChanged { value in self.offset = value.translation } .onEnded { value in self.offset = CGSize.zero self.position.width += value.translation.width self.position.height += value.translation.height } ) } } |
В этом примере прямоугольник, который можно перетаскивать, создается с помощью RoundedRectangle, который имеет радиус скругления. Затем создается GestureRecognizer с помощью DragGesture. Обработчики onChanged и onEnded вызываются соответственно при изменении и завершении жеста перемещения.
В методе onChanged мы обновляем значение переменной ГС, чтобы привязать прямоугольник к перемещению пользовательского пальца. В методе onEnded мы сбрасываем значение переменной ГС в CGSize.zero и обновляем значение переменной позиции, чтобы переместить прямоугольник в новое местоположение на основе перемещения пользователя.