For AI agents: the complete documentation index is available at /2.x/ko/llms.txt, the full documentation bundle is available at /2.x/ko/llms-full.txt, and this page is available as Markdown at /2.x/ko/guide/usage/handling-viewer-events.md.
v3 정식 출시. 변경 사항 보기
  • 한국어
  • 2.x
  • 뷰어 이벤트 처리하기

    useGestureViewerEvent 훅을 사용하여 GestureViewer의 특정 이벤트를 구독할 수 있습니다. 줌, 회전, 탭과 같은 뷰어 상호작용에 반응할 수 있습니다.

    useGestureViewerEvent

    import { GestureViewer, useGestureViewerEvent } from 'react-native-gesture-image-viewer';
    
    function App() {
      useGestureViewerEvent('zoomChange', (data) => {
        console.log(`줌 변경: ${data.previousScale}${data.scale}`);
      });
    
      useGestureViewerEvent('rotationChange', (data) => {
        console.log(`회전 변경: ${data.previousRotation}° → ${data.rotation}°`);
      });
    
      useGestureViewerEvent('tap', (data) => {
        if (data.kind === 'single') {
          console.log(`아이템 ${data.index} 탭: (${data.x}, ${data.y})`);
        }
      });
    
      return <GestureViewer data={images} renderItem={renderImage} />;
    }

    특정 인스턴스의 이벤트 구독

    useGestureViewerEvent 훅의 첫 번째 인수로 인스턴스 ID를 전달하여 특정 인스턴스의 이벤트를 구독할 수 있습니다.

    // 특정 인스턴스의 이벤트 구독
    useGestureViewerEvent('gallery', 'zoomChange', (data) => {
      console.log(`갤러리 줌: ${data.scale}x`);
    });
    Note

    기본 id 값은 default입니다.

    API Reference

    // 기본 인스턴스의 이벤트 구독
    function useGestureViewerEvent<T extends GestureViewerEventType>(
      eventType: T,
      callback: GestureViewerEventCallback<T>,
    ): void;
    
    // 특정 인스턴스의 이벤트 구독
    function useGestureViewerEvent<T extends GestureViewerEventType>(
      instanceId: string,
      eventType: T,
      callback: GestureViewerEventCallback<T>,
    ): void;
    이벤트 타입설명콜백 데이터
    zoomChange핀치 제스처 중 줌 스케일이 변경될 때 발생{ scale: number, previousScale: number }
    rotationChange회전 제스처 중 회전 각도가 변경될 때 발생{ rotation: number, previousRotation: number }
    tap뷰어에서 탭이 확정되면 발생합니다. 현재는 확정된 싱글 탭만 emit합니다.{ kind: 'single', x: number, y: number, index: number }
    Tip

    tap 이벤트를 GestureViewer prop로 직접 처리하고 싶다면 onSingleTap을 사용할 수 있습니다.