ldn0x7dc / react-native-view-transformer

A pure JavaScript RN component that makes ANY views transformable using gestures like pinch, double tap or pull.
135 stars 143 forks source link

react-native-view-transformer

A pure JavaScript RN component that makes ANY views transformable using gestures like pinch, double tap or pull.

Install

npm install --save react-native-view-transformer@latest

Usage

import ViewTransformer from 'react-native-view-transformer';
...
render() {
  return (
    <ViewTransformer>
      //ANY views
    </ViewTransformer>
  );
}

Now, the wrapped views are transformable!

This component accepts following props:

methods

updateTransform(transform) : immediately transform this view.

Transformable Image

The most common case is to transform an image, or a photo, which is famous as a PhotoView, or ImageViewer, so I provide a dedicated component react-native-transformable-image

Application

Besides transforming an image, this component is helpful in implementing transition animations.

For example, you want to transform a normal size content into a right-bottom floating small window (like the android youtube app). Using this component, you can do as following:

  1. Calculate the normal rect and the final rect. A ViewTransformer.Rect(left, top, right, bottom) object defines the boundary of a view
  2. Use ViewTransformer.getTransform(fromRect, toRect) to get the transform object
  3. Use updateTransform(transform) to make the tranform happen( This is immediate, but you can animate it by calculating the intermediate rects and then transform using your own animation loop)