1、关于canvas缩放react
canvas图像缩放处理有两种思路:git
2、view触摸事件github
view组件借助RN自带的手势响应系统,已经有完善的触摸事件处理体系。canvas
RN触摸事件处理详解:https://www.race604.com/react-native-touch-event/react-native
其中,PanResponder是一个封装好的用于处理多点触摸交互的手势系统。学习
基本用法:https://reactnative.cn/docs/panresponder/#docsNavspa
3、关于缩放code
A pure JavaScript RN component that makes ANY views transformable using gestures like pinch, double tap or pull.:react-native-view-transformer(https://github.com/ldn0x7dc/react-native-view-transformer)component
用轮子封装自定义组件便可:orm
Usage import ViewTransformer from 'react-native-view-transformer'; ... render() { return ( <ViewTransformer> //ANY views </ViewTransformer> ); }
一个及其有效的学习方式:研究别人轮子的实现方式,既有助于深刻理解RN,同时还能激发想象力。
血的教训:
当你搜索“RN 手势识别”、“panresponder 缩放”等等,发现超过1个小时尚未解决问题,那么请直接搜索“RN gesture recognition”、“panresponder zoom”,会有意想不到的收获。