내 앱은 사용자 권한을 가져 와서지도를 해당 위치로 이동시킵니다. 그리고 그 위치에 기본적으로 MapKit
일부 펄스를 생성하는 파란색 아이콘을 추가합니다.
검색 한 적이 있지만 userLocation
주위에 1000m 원을 추가하는 방법을 찾았습니다. 나는 그것을 원하지 않는다. userLocation
을 기본값 인 annotation
으로 사용자 정의하려고합니다. 파란 펄스가 나는 그것을 radius
증가시키고 싶습니다. 그리고이 파란 펄스가 사용자 정의 annotation
에 도달하면 트리거 된 메소드가 있어야합니다. 어떻게 달성 할 수 있을까요?Mapkit에서 userLocation 주석의 반경을 늘리는 방법
1
A
답변
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;
}
은 다른 주석을 교차 '펄스'어떤 애니메이션을 수행하는, 당신은 당신의 펄스보기로 다른 주석 위치를 통과 할 때 좌표를 확인해야합니다
애니메이션을 실행하십시오.
개인적으로 수행 했습니까? 해킹 같은데. Apple은 매번이 작업을 수행합니다 .... – denis631
왜 "해킹"입니까? 표준 주석의 모양을 수정할 수있는 기능은 없습니다. Apple의 표준 주석보기를 원하거나 다른 것을 원하십니까? 당신이 다른 것을 원한다면 당신 자신의 견해를 제공 할 필요가있다. – Paulw11
내가 원하는 것은 사용자 위치 주석 서클의 반지름을 늘리는 것뿐입니다.하지만 그렇게 할 수는 없으므로 자체 오버레이를 만들어야합니다. 따라서 해킹을해야합니다. – denis631