안녕하세요! 개발하는 윤기사입니다~~
입추가 지나고 나서는 저녁에는 선선해서 딱 코딩하기 좋은 날씨가 되었죠? :)
오늘은 Map Kit View에 관한 내용을 정리해서 가지고 왔는데요!
바로 시작해보겠습니다 ㅎㅎ
- Map Kit View -
Map View란 스위프트 개발자 공식 문서를 확인해보면, 스케일 정보를 스케일 보기에 제공하는 지도라고 나와있습니다.
간단히 얘기해서, 우리가 자주 쓰는 네이버 지도, 카카오 맵에 이용되는 지도를 뜻합니다!
Map Kit View를 사용하는 방법은 총 9가지 Step을 통해 완벽하게 알려드리겠습니다!!!!
1. 스토리보드 상에서 오브젝트 라이브러리에서 Map Kit View를 불러오고, 오토 레이아웃을 잡아줍니다!
2. Info.plist에 Privacy - Location When In Use Usage Description을 꼭 설정해줍니다!
🍎 iOS는 앱이 사용되는 동안 "사용자가 스스로의 위치 정보를 제공하겠다"에 대한 세부적인 통제권을 사용자가 소유하고 있습니다.
🍎 따라서 개발자는 상황에 대한 권한을 사용자에게 요청을 필수로 해야합니다!
🍎 이를 허용했을 때 그 정보에 접근할 수 있기 때문에 위치 정보의 접근 권한을 설정해주는 겁니다!
3. View controller를 스토리보드와 연결시켜주고, MapKit과 CoreLocation을 Import 시킵니다!
4. 위치 담당인 CLLocationManager를 인스턴스화 시켜주고!! delegate를 이용한 프로토콜도 Self로 연결시켜줍니다!
5. 지도에 핀과 지도 중심 기반으로 보여질 범위를 설정하는 함수를 만들어줍니다. MKCoordinateRegion.init을 이용한 범위를 설정하고, MKPointAnnotation으로 핀을 추가할 수 있습니다.
6. View Controller에 관한 delegate를 선언했으면 필수 선언을 같이 해줘야 해서 extension을 이용해 CLLocationManagerDelegate를 View Controller에 선언해 줘야 합니다!
- didUpdateLocations은 사용자의 위치를 성공적으로 가져온 경우의 동작하는 함수
- didFailWithError는 사용자의 위치를 가지고 오지 못한 경우에 동작하는 함수
7. 필수로 iOS 버전에 따른 분기 처리 및 iOS 위치 서비스 활성화 여부를 확인해야 합니다!! 위치 서비스가 켜져 있다면 권한을 요청하도록, 꺼져 있다면 상황을 알려주는 겁니다!
8. 사용자의 위치 권한 상태를 확인하기 위해서는 CLAuthorizationStatus의 값을 확인합니다! 사용자가 위치를 허용했는지, 거부했는지, 아직 선택을 안 했는지 확인을 해야 합니다!
- 선택되지 않았을 때(notDetermined)
- 거절했을 때(restricted와 denied)
- 사용 중에만 허용할 때(authorizedWhenInUse)
9. 마지막으로 사용자의 권한 상태가 바뀔 수도 있기 때문에, 권한 상태가 변경이 되면 6번에서 선언했던 iOS 버전에 따른 분기 처리 및 iOS 위치 서비스 활성화 여부를 확인하는 함수를 실행합니다!
이상! Map Kit View에 관한 포스팅을 마치겠습니다!
앱을 개발하면서 지도를 써야 하는 경우가 종종 있는데요! 개발하는 윤기사 포스팅을 참고해서 코드 작성하시면 많은 도움이 되실 겁니다!
윤기사는 오늘도 빡코딩 조지겠습니다~ 😎
'iOS_Swift 앱개발👍' 카테고리의 다른 글
[iOS_Swift] 타입 캐스팅(Type Casting)의 모든 것 _ 21 (31) | 2022.08.18 |
---|---|
[iOS_Swift] 접근 제어자(Access Control) _ 20 (30) | 2022.08.16 |
[iOS_Swift] View의 Frame & Bounds 차이 _ 18 (30) | 2022.08.12 |
[iOS_Swift] UIView를 Cell로 사용하기 (테이블뷰 안에 컬렉션뷰) _ 17 (30) | 2022.08.09 |
[iOS_Swift] APIManager를 만들어보자! (feat. 고차함수) _ 16 (1) | 2022.08.07 |