일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 개발자
- TableView
- Chrats
- PyQt
- 라이브러리
- kotlin
- Apple
- modal
- Swift
- charts
- button
- Python
- Xcode
- UIButton
- Storyboard
- ios
- Android
- cocoapods
- Chart
- PyQt5
- UIKit
- graph
- 그래프
- 어플리케이션
- androidstudio
- alamofire
- library
- UITableView
- 개발
- ui
Archives
- Today
- Total
Jiwift
[iOS/Swift] MapKit 화면 이동 감지 Delegate 본문
반응형
MapKit에서 사용자가 화면을 드래그해서 이동하거나 핀치 줌을 통하여 확대 또는 축소를 하는 것을 감지해 주는 Delegate가 있습니다.
self.mapView.delegate = self
Delegate를 원하는 곳에서 채택해줍니다.
func mapViewDidChangeVisibleRegion(_ mapView: MKMapView) {
print("mapViewDidChangeVisibleRegion")
}
func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
print("regionWillChangeAnimated")
}
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
print("regionDidChangeAnimated")
}
위 Delegate를 함수들을 사용하면 사용자의 동작에 따라서 구현이 가능합니다.
mapViewDidChangeVisibleRegion(_ mapView: MKMapView)
- 지도 이동, 확대, 축소 하는 순간에 호출
mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool)
- 지도 이동, 확대, 축소가 시작되면 호출
mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool)
- 지도 이동, 확대, 축소가 끝나면 호출
Print를 출력을 통해서 결과를 확인했습니다.
(mapViewDidChangeVisibleRegion은 확인하기 위해서 숫자를 더해가서 계속 호출되고 있음을 확인해 보았습니다. )
전체 코드
//
// MapKitViewController.swift
// EatCar
//
// Created by KimJitae on 4/14/24.
//
import UIKit
import MapKit
class MapKitViewController: UIViewController, MKMapViewDelegate {
let mapView = MKMapView()
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self
self.view.addSubview(self.mapView)
// Auto Layout 제약 설정
self.mapView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
self.mapView.topAnchor.constraint(equalTo: view.topAnchor),
self.mapView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
self.mapView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
self.mapView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
}
func mapViewDidChangeVisibleRegion(_ mapView: MKMapView) {
print("mapViewDidChangeVisibleRegion")
}
func mapView(_ mapView: MKMapView, regionWillChangeAnimated animated: Bool) {
print("regionWillChangeAnimated")
}
func mapView(_ mapView: MKMapView, regionDidChangeAnimated animated: Bool) {
print("regionDidChangeAnimated")
}
}
반응형
'iOS Dev > iOS' 카테고리의 다른 글
[iOS/Swift] safeAreaInsets 상단, 하단 영역 구하기 (0) | 2024.04.23 |
---|---|
[iOS/Swift] 프로젝트 폴더 구조 구성 (0) | 2024.04.21 |
[iOS/Swift] MapKit 추가하기 (0) | 2024.04.14 |
Apple Privacy Manifest 정보 공유 (0) | 2024.03.26 |
[iOS/Xcode] 정적 라이브러리(Static Library) Privacy Manifest 추가 (2) | 2024.03.14 |