핀을 추가하는 MKMapView가 있습니다. 관련 그래픽과 함께 올바르게로드되지만 확대 한 후 축소하면 그래픽이 느슨해지고 표준 빨간색 핀으로 바뀌며 핀 이름 만 커스터마이징됩니다 (심지어 내 공개 표시기도 사라짐).맞춤 핀이있는 MKMapView는 다시로드 할 때 빨간색 표준 핀으로 돌아갑니다.
지금까지 시도하고 내가 해봤 그것을 해결하기 위해 대신 내 사용자 지정 CBAnnotation의 정상적인 MKAnnotation에 반환 MKAnnotation에 MKPinAnnotation에서 모든 변경, 시도 PNG 년대를 빨리 장치에 대한 점검, 로딩 사용자 정의 핀을위한 다양한 샘플 코드 로딩 문제 였지만 여전히 문제가되는 경우지도 오버레이의 품질이 저하되었습니다.
- (void)addPins {
mapPinsArray = [[NSMutableArray alloc] init];
for (MapPoint *mappoint in mapPointsArray) {
CBAnnotation *annotation = [[CBAnnotation alloc] init];
annotation.coordinate = CLLocationCoordinate2DMake(mappoint.loclat, mappoint.loclong);
annotation.title = mappoint.stopAreaName;
annotation.mapPoint = mappoint;
[mapPinsArray addObject:annotation];
[self.myMapView addAnnotation:annotation];
}
}
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(CBAnnotation *)annotation {
if ([annotation isKindOfClass:[MKUserLocation class]]) {
//do nothing
return nil;
} else {
MKAnnotationView *annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"trailPoint"];
annotationView.canShowCallout = YES;
ButtonWithData *accessoryViewButton = [[ButtonWithData alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
[accessoryViewButton setBackgroundImage:[UIImage imageNamed:@"right_arrow"] forState:UIControlStateNormal];
accessoryViewButton.buttonData = annotation.mapPoint;
[accessoryViewButton addTarget:self action:@selector(disclosureButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
annotationView.rightCalloutAccessoryView = accessoryViewButton;
if (![[NSUserDefaults standardUserDefaults] boolForKey:annotation.mapPoint.stopAnimalName]) {
annotationView.image = [annotation.mapPoint lockedPinImage];
} else {
annotationView.image = [annotation.mapPoint unlockedPinImage];
}
return annotationView;
}
}