Skip to content

z8837/DraggableImageView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IndoorMapTestIOS

실내 지도 이미지를 대상으로 확대, 축소, 회전, 드래그, 관성 이동, 좌표 변환을 시험하는 UIKit 기반 iOS 프로토타입입니다. UIScrollView 위에 지도 이미지를 올리고, 제스처 입력과 특정 좌표 계산이 원하는 방식으로 동작하는지 확인하는 데 초점이 맞춰져 있습니다.

주요 기능

  • 핀치 제스처로 지도 이미지를 1배에서 6배 사이로 확대/축소합니다.
  • 회전 제스처로 이미지를 회전시키고 현재 각도를 유지합니다.
  • 팬 제스처로 지도를 이동시키며, 빠른 드래그 뒤에는 관성 이동을 적용합니다.
  • 버튼 액션으로 특정 지도 좌표를 화면 중심으로 이동시키는 테스트를 수행합니다.
  • 버튼 액션으로 회전 각도를 0도로 되돌립니다.
  • 탭 위치와 사전 정의된 지도 좌표를 비교해 특정 포인트 클릭 여부를 검사합니다.

주요 파일

  • ViewController.swift: 스크롤 뷰 초기화, 버튼 액션, 탭 좌표와 지도 좌표 변환 로직을 담당합니다.
  • MapImageScrollView.swift: pan, pinch, rotation 제스처를 등록하고 이미지 변환을 처리합니다.
  • DraggableImageView.swift: transform 상태, 관성 이동, 자동 보정용 타이머 로직을 관리합니다.
  • Assets.xcassets/B1.imageset: 테스트용 실내 지도 이미지 리소스입니다.
  • Canvas.swift, NewCanvasView.swift, FreeDrawingImageView.swift: 드로잉 및 오버레이 관련 실험 코드입니다. 현재 일부는 주석 처리되었거나 연결되지 않은 상태입니다.

동작 방식

  1. 화면 진입 시 MapImageScrollView 내부에 DraggableImageView를 생성하고 B1 이미지를 로드합니다.
  2. 사용자는 드래그, 핀치, 회전 제스처로 지도를 직접 조작할 수 있습니다.
  3. 첫 번째 버튼은 특정 좌표를 기준으로 화면 중심 이동과 확대를 테스트합니다.
  4. 두 번째 버튼은 회전 상태를 초기화합니다.
  5. 화면을 탭하면 화면 좌표를 지도 좌표계로 변환해 지정 포인트와의 일치 여부를 확인합니다.

현재 저장소 기준 메모

  • 이 폴더에는 .xcodeproj 또는 .xcworkspace 파일이 포함되어 있지 않습니다.
  • 따라서 현재 상태는 완전한 Xcode 프로젝트라기보다, 실내 지도 테스트에 사용된 소스와 리소스를 모아둔 작업 폴더에 가깝습니다.
  • 실제로 빌드하려면 원래의 Xcode 프로젝트 파일을 함께 복원하거나, 새 UIKit iOS 프로젝트를 만든 뒤 이 폴더의 소스, 스토리보드, 에셋을 연결해야 합니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages