2016-07-18 8 views
1

내 앱은 사용자 권한을 가져 와서지도를 해당 위치로 이동시킵니다. 그리고 그 위치에 기본적으로 MapKit 일부 펄스를 생성하는 파란색 아이콘을 추가합니다.
검색 한 적이 있지만 userLocation 주위에 1000m 원을 추가하는 방법을 찾았습니다. 나는 그것을 원하지 않는다. userLocation을 기본값 인 annotation으로 사용자 정의하려고합니다. 파란 펄스가 나는 그것을 radius 증가시키고 싶습니다. 그리고이 파란 펄스가 사용자 정의 annotation에 도달하면 트리거 된 메소드가 있어야합니다. 어떻게 달성 할 수 있을까요?Mapkit에서 userLocation 주석의 반경을 늘리는 방법

답변

1

불행히도 표준 주석의 동작을 단순히 변경할 수는 없습니다. 주석보기의 표시를 직접 처리해야합니다.

사용자 위치는 MKUserLocation 유형의지도 주석입니다. MKMapViewDelegate 메서드 viewForAnnotation을 구현하고지도에 사용자 위치가 표시되면 MKUserLocation 인스턴스와 함께 대리자 메서드가 호출됩니다. 책임을 묻는 경우 nil을 반환하거나 표준 주석 뷰를 표시하거나 대신 MKAnnotationView의 인스턴스가 표시됩니다.

당신은 뭔가를 코딩 할 수 있습니다 :

- (MKAnnotationView *)mapView:(MKMapView *)mapView 
     viewForAnnotation:(id<MKAnnotation>)annotation { 
    if ([annotation isKindOfClass:[MKUserLocation class]]) { 
     return [[MyPulsingViewAnnotation alloc] initWithUserLocation:annotation]; 
    } 

    return nil; 
} 

은 다른 주석을 교차 '펄스'어떤 애니메이션을 수행하는, 당신은 당신의 펄스보기로 다른 주석 위치를 통과 할 때 좌표를 확인해야합니다

애니메이션을 실행하십시오.

+0

개인적으로 수행 했습니까? 해킹 같은데. Apple은 매번이 작업을 수행합니다 .... – denis631

+0

왜 "해킹"입니까? 표준 주석의 모양을 수정할 수있는 기능은 없습니다. Apple의 표준 주석보기를 원하거나 다른 것을 원하십니까? 당신이 다른 것을 원한다면 당신 자신의 견해를 제공 할 필요가있다. – Paulw11

+0

내가 원하는 것은 사용자 위치 주석 서클의 반지름을 늘리는 것뿐입니다.하지만 그렇게 할 수는 없으므로 자체 오버레이를 만들어야합니다. 따라서 해킹을해야합니다. – denis631