При перетаскивании объекта курсор скользит по мере того, как я его перетаскиваю

У меня есть этот код на SwiftUI.

Идея такова: когда пользователь перетаскивает объект, я хочу, чтобы он немного увеличивал масштаб во время перетаскивания и возвращался к нормальному масштабу, когда перетаскивание закончилось.

      struct ContentView: View {
    
  @State private var position = CGPoint(x: 200, y: 250)
  @State private var scale:CGFloat = 1


  var body: some View {
    VStack(spacing:0) {
      Toolbar()

      ZStack {
        Rectangle()
          .fill(Color.white)
            
        Rectangle()
          .fill(Color.black)
          .frame(width:50, height: 50)
          .position(position)
          .scaleEffect(scale, anchor: .center)

    
          .gesture(
            DragGesture()
              
              .onChanged({ newValue in
                withAnimation{
                  self.scale = 1.2
                  self.position = newValue.location
                }
              })
          
              .onEnded({_ in
                withAnimation{
                  self.scale = 1.1
                }
              }))
      }
    }
    .background(Color("background"))
    .statusBar(hidden: true)
    
  }
}

вот что происходит:

Обратите внимание, как положение объекта на экране влияет на его смещение.

Я хочу, чтобы объект все время находился в центре того места, где находится палец.

0 ответов

Другие вопросы по тегам