This fork adds an iOS-only
TransformGestureHandler
which implements a multitouch transform gesture, similar to Google Maps. This is different from the Pinch & rotate demo in the upstream repo in thatTransformGestureHandler
rotates and scales around the centroid of the touches – the effect is that, for a frame moving from touch locations(A, B)
->(A', B')
,TransformGestureHandler
reports a transformT
such thatA * T = A'
andB * T = B'
. See the Natural transform recipe in the example app for usage.
Update (January 2022): I recommend implementing this via RNGH's manual gestures for better compatibility.
React Native Gesture Handler provides native-driven gesture management APIs for building best possible touch-based experiences in React Native.
With this library gestures are no longer controlled by the JS responder system, but instead are recognized and tracked in the UI thread. It makes touch interactions and gesture tracking not only smooth, but also dependable and deterministic.
Check getting started section of our docs for the detailed installation instructions.
Check out our dedicated documentation page for info about this library, API reference and more: https://docs.swmansion.com/react-native-gesture-handler/docs/
If you want to play with the API but don't feel like trying it on a real app, you can run the example project. Clone the repo, go to the examples/Example/
folder and run:
yarn install
If you are running on ios, run pod install
in the ios folder
Run yarn start
to start the metro bundler
Run react-native run-android
or react-native run-ios
(depending on which platform you want to run the example app on).
You will need to have an Android or iOS device or emulator connected as well as react-native-cli
package installed globally.
version | react-native version |
---|---|
1.4.0+ | 0.60.0+ |
1.1.0+ | 0.57.2+ |
<1.1.0 | 0.50.0+ |
It may be possible to use newer versions of react-native-gesture-handler on React Native with version <= 0.59 by reverse Jetifying. Read more on that here https://github.com/mikehardy/jetifier#to-reverse-jetify--convert-node_modules-dependencies-to-support-libraries
Gesture handler library is licensed under The MIT License.
This project is supported by amazing people from Expo.io and Software Mansion