React Native Gestures. Support: Drag, Scale and Rotate a Component.
$ npm install --save react-native-easy-gestures
$ npm install --save [email protected]
import Gestures from 'react-native-easy-gestures';
/* Simple example: */
<Gestures>
<Image
source={photo}
style={{
width: 200,
height: 300,
}}
/>
</Gestures>
/* Only drag example witn `onChange` event: */
<Gestures
rotatable={false}
scalable={false}
onChange={(event, styles) => {
console.log(styles);
}}
>
<Image
source={photo}
style={{
width: 200,
height: 300,
}}
/>
</Gestures>
/**
* Another example:
* Drag only on x axis;
* Scale from 0.1 to 7;
* Do not rotate;
* On release callback;
*/
<Gestures
draggable={{
y: false,
}}
scalable={{
min: 0.1,
max: 7,
}}
rotatable={false}
onEnd={(event, styles) => {
console.log(styles);
}}
>
<Image
source={photo}
style={{
width,
height,
}}
/>
</Gestures>draggable?: boolean = true | object = { x?: boolean = true, y?: boolean = true }rotatable?: boolean = truescalable?: boolean = true | object = { min?: number = 0.33, max?: number = 2 }style?: object // RN StylesonStart?(event: object, styles: object): voidonChange?(event: object, styles: object): voidonEnd?(event: object, styles: object): voidonMultyTouchStart?(event: object, styles: object): voidonMultyTouchChange?(event: object, styles: object): voidonMultyTouchEnd?(event: object, styles: object): voidonRotateStart?(event: object, styles: object): voidonRotateChange?(event: object, styles: object): voidonRotateEnd?(event: object, styles: object): voidonScaleStart?(event: object, styles: object): voidonScaleChange?(event: object, styles: object): voidonScaleEnd?(event: object, styles: object): void<Gestures
ref={(c) => { this.gestures = c; }}
onEnd={(event, styles) => {
this.gestures.reset((prevStyles) => {
console.log(prevStyles);
});
}}$ git clone https://github.com/keske/react-native-easy-gestures.git
$ cd react-native-easy-gestures
$ npm install
$ react-native run-ios
- Rotate step, ex: every 90deg
- Guidelines and center snap
