[iOS] 맵(MKMapView)에 핀이 표시되지 않았을 때 확인
이것은 무엇이냐
Stack Overflow의 mapkit 해시태그를 구독하니 "지도에 핀이 표시되지 않으니 도와주세요!"이런 문제를 자주 본다.대개 다음 3가지 유형의 원인이기 때문에 확인해야 할 부분을 정리해 보겠습니다.
1. delegate 설정 여부
의외로 설정을 잊어버린 경우
MKMapViewDelegate
가 많았다.먼저 정계부 협의가 발표되었는지 확인한다.
class ViewController: UIViewController, MKMapViewDelegate {
다음delegate
처리 의뢰 속성을 설정하는 대상이 있는지 확인합니다.mapView.delegate = self
Storyboard로 설정할 때그리고 경계부호를 설치했는지 확인하세요.
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
let reuseId = "pin"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKPinAnnotationView
if pinView == nil {
pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
}
else {
pinView?.annotation = annotation
}
return pinView
}
이렇게 하면 디스플레이 핀을 표시할 수 있다!2. MKAnnotation View 사용 여부
탭을 표시할 때
MKAnnotationView
사용하지 않으면 아무것도 보이지 않습니다.참고로
MKPinAnnotationView
는 핀에 그림을 사용할 때 사용합니다.pinView = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView?.image = UIImage(named: "Laugh")
3. 위도 경도가 틀렸는지 여부
위도와 경도가 상반되는 경우도 간혹 볼 수 있다.반환
MKAnnotationView
public func CLLocationCoordinate2DMake(_ latitude: CLLocationDegrees, _ longitude: CLLocationDegrees) -> CLLocationCoordinate2D
매개 변수에 설정된 값을 잘못하지 않도록 주의하십시오.예컨대
let coordinate = CLLocationCoordinate2DMake(35.658034, 139.701636)
.
Reference
이 문제에 관하여([iOS] 맵(MKMapView)에 핀이 표시되지 않았을 때 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koogawa/items/b5d610c23d92ca4fd84e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)