/// import { Component } from 'react'; import { ViewProperties } from 'react-native'; export interface PropsDefine extends ViewProperties { /** * 单击的回调 */ onClick?: () => void; /** * 操作区域宽度 */ cropWidth: number; /** * 操作区域高度 */ cropHeight: number; /** * 图片宽度 */ imageWidth: number; /** * 图片高度 */ imageHeight: number; /** * 单手是否能移动图片 */ panToMove?: boolean; /** * 多手指是否能缩放 */ pinchToZoom?: boolean; /** * 手指按住少于多少毫秒认为是退出 */ leaveStayTime?: number; /** * 手指按住后位移少于多少认为是退出 */ leaveDistance?: number; /** * 横向超出的距离,父级做图片切换时,可以监听这个函数 * 当此函数触发时,可以做切换操作 */ horizontalOuterRangeOffset?: (offsetX?: number) => void; /** * 触发想切换到左边的图,向左滑动速度超出阈值时触发 */ onDragLeft?: () => void; /** * 松手但是没有取消看图的回调 */ responderRelease?: (vx?: number, scale?: number) => void; /** * 最大滑动阈值 */ maxOverflow?: number; /** * 长按的阈值(毫秒) */ longPressTime?: number; /** * 长按的回调 */ onLongPress?: () => void; /** * 双击的回调 */ onDoubleClick?: () => void; /** * 透传 */ others?: any; } export declare class PropsGaea { gaeaName: string; gaeaIcon: string; gaeaUniqueKey: string; } export declare class Props extends PropsGaea implements PropsDefine { onClick: () => void; onLongPress: () => void; panToMove: boolean; pinchToZoom: boolean; cropWidth: number; cropHeight: number; imageWidth: number; imageHeight: number; source: string; longPressTime: number; leaveStayTime: number; leaveDistance: number; maxOverflow: number; horizontalOuterRangeOffset: () => void; responderRelease: () => void; onDoubleClick: () => void; } export interface StateDefine { /** * 中心 x 坐标```` */ centerX?: number; /** * 中心 y 坐标 */ centerY?: number; } export declare class State implements StateDefine { centerX: number; centerY: number; } export default class ImageViewer extends Component { static defaultProps: PropsDefine; state: StateDefine; private lastPositionX; private positionX; private animatedPositionX; private lastPositionY; private positionY; private animatedPositionY; private scale; private animatedScale; private zoomLastDistance; private zoomCurrentDistance; private imagePanResponder; private lastTouchStartTime; private horizontalWholeOuterCounter; private horizontalWholeCounter; private verticalWholeCounter; private centerDiffX; private centerDiffY; private longPressTimeout; private lastClickTime; private doubleClickX; private doubleClickY; private isDoubleClickScale; componentWillMount(): void; /** * 图片区域视图渲染完毕 * event: LayoutChangeEvent */ handleLayout: () => {}; /** * 重置大小和位置 */ reset(): void; render(): JSX.Element; }