실내 지도 이미지를 대상으로 확대, 축소, 회전, 드래그, 관성 이동, 좌표 변환을 시험하는 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: 드로잉 및 오버레이 관련 실험 코드입니다. 현재 일부는 주석 처리되었거나 연결되지 않은 상태입니다.
- 화면 진입 시
MapImageScrollView내부에DraggableImageView를 생성하고B1이미지를 로드합니다. - 사용자는 드래그, 핀치, 회전 제스처로 지도를 직접 조작할 수 있습니다.
- 첫 번째 버튼은 특정 좌표를 기준으로 화면 중심 이동과 확대를 테스트합니다.
- 두 번째 버튼은 회전 상태를 초기화합니다.
- 화면을 탭하면 화면 좌표를 지도 좌표계로 변환해 지정 포인트와의 일치 여부를 확인합니다.
- 이 폴더에는
.xcodeproj또는.xcworkspace파일이 포함되어 있지 않습니다. - 따라서 현재 상태는 완전한 Xcode 프로젝트라기보다, 실내 지도 테스트에 사용된 소스와 리소스를 모아둔 작업 폴더에 가깝습니다.
- 실제로 빌드하려면 원래의 Xcode 프로젝트 파일을 함께 복원하거나, 새 UIKit iOS 프로젝트를 만든 뒤 이 폴더의 소스, 스토리보드, 에셋을 연결해야 합니다.