マップ ビューのカスタム アノテーションを作成します。地図にピンを配置すると、2 つのボタンで注釈が表示されます。iOS 6 では動作しますが、このコードを iOS 5 でテストすると、注釈が表示されません。
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:[MKUserLocation class]])
return nil; //return nil to use default blue dot view
NSLog(@"viewForAnnotation");
MKAnnotationView *annotationView = [[MKPinAnnotationView alloc]
initWithAnnotation:annotation reuseIdentifier:@"loc"];
annotationView.draggable = YES;
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Добавить" forState:(UIControlStateNormal)];
button.frame = CGRectMake(0, 0, 76, 23);
if (plased == YES){
annotationView.rightCalloutAccessoryView = button;
}
[button addTarget:self action:@selector(fixPoint:) forControlEvents:(UIControlEventTouchUpInside)];
UIButton *buttonLeft = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[buttonLeft setTitle:@"Удалить" forState:(UIControlStateNormal)];
buttonLeft.frame = CGRectMake(0, 0, 66, 23);
[buttonLeft addTarget:self action:@selector(cancelPoint:) forControlEvents:(UIControlEventTouchUpInside)];
if (plased == YES){
annotationView.leftCalloutAccessoryView = buttonLeft;
}
annotationView.tag = [geoPointsList count]+1;
annotationView.canShowCallout = YES;
return annotationView;
}