0
내 모든지도 핀에 대해 사용자 지정 MKPinAnnotationView를 만들었지 만 사용자 위치 핀을 사용자 지정하는 데 문제가 있습니다. 커스텀 핀을 만들면 파란 점을 잃어 버리고 핀으로 바뀌므로 원하지 않습니다. 그래서 viewForAnnotation 방법에 전무를 반환 :MapKit 사용자 위치에 대한 사용자 정의 콜 아웃보기를 만들려면 어떻게해야합니까?
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
if(annotation == self.mapView.userLocation)
{
// show the blue dot for user's GPS location
return nil;
}
... code for custom annotation pins goes here
}
그러나, 나는 그것이 내가 그것을 탭 사용자 정의 콜 아웃 뷰를 호출 할 않습니다. 파란색 점이 선택되었을 때 나는 하위 뷰를 추가하는 시도했다 :
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
if(view == [self.mapView viewForAnnotation:self.mapView.userLocation])
{
MKAnnotationView *userLocationView = [self.mapView viewForAnnotation:self.mapView.userLocation];
userLocationCalloutView = [[MyAnnotationCalloutView alloc] initWithFrame:CGRectMake(-113, -58, 247, 59)];
[userLocationCalloutView.rightAccessoryButton addTarget:self action:@selector(pinButtonTapped) forControlEvents:UIControlEventTouchDown];
[userLocationView addSubview:userLocationCalloutView];
}
}
그러나이 문제는 콜 아웃 액세서리 버튼 히트 영역의 밖에 있다는 것입니다, 그리고 나는 그러나 hitTest를 추가 할 수 없습니다 : withEvent 때문에 파란색 점 주석보기는 비공개입니다 ... 어떤 아이디어입니까?