Как я могу получить CGPoint из TapGesture в SwiftUI - PullRequest
1 голос
/ 24 марта 2020

У меня есть исходный код:

fileprivate struct ImageWrapper: View {

    var body: some View {
        let fitToFill = TapGesture(count: 2)
            .onEnded {
                //How could I get the CGPoint here?
            }

         return Image(uiImage: image)
            .renderingMode(.original)
            .gesture(fitToFill)        
        }        
}

Я хочу получить точку щелчка, когда закончится TapGesture. Но я не мог найти путь в документе. Как я мог сделать с этим? Большое спасибо!

1 Ответ

0 голосов
/ 24 марта 2020

Здесь возможен подход (проверено с Xcode 11.4 / iOS 13.4)

fileprivate struct ImageWrapper: View {
    let image: UIImage

    @State var lastLocation: CGPoint = .zero
    var body: some View {
        let fitToFill = TapGesture(count: 2)
            .onEnded {
                // << use self.lastLocation here as needed
            }.simultaneously(with: 
            DragGesture(minimumDistance: 0, coordinateSpace: .local).onChanged { value in
                // location in image own coordinates, if needed in screen,
                // then change above coordinateSpace to .global
                self.lastLocation = value.location 
            })

         return Image(uiImage: image)
            .renderingMode(.original)
            .gesture(fitToFill)
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...