test:
//首先设置一个位置坐标
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = CLLocationCoordinate2DMake(coordinate.latitude, coordinate.longitude);annotation.subtitle = @"怡红菊";
//加在地图上
在设置了mapView的代理后 就可以在回调方法
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation;
自定义点击大头针显示的上面标签的内容了
举个栗子:
#pragma mark - 定义标记(大头针)里面的视图内容
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{
//和cell重用机制类似
static NSString *identifier = @"aAnn";
//此处不用MKAnnotationView,应该用MKPinAnnotationView,是MKAnnotationView其中的一个子view(大头针)
MKPinAnnotationView *annView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if (!annView) {
annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
}
//当annotation是当前用户的位置时,返回nil
if (_mapView.userLocation == annotation) {
return nil;
}
//设置其大头针的颜色(只有红,绿,紫)
annView.pinColor = MKPinAnnotationColorPurple;
//annView.image = [UIImage imageNamed:@"1ss.png"];
//显示弹出框(气泡)里面的内容
annView.canShowCallout = YES;
//设置弹出框右边的view
UIButton *button = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annView.rightCalloutAccessoryView = button;
//设置弹出框左边的view
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"1ss.png"]];
imageView.frame = CGRectMake(0, 0, 30, 30);
annView.leftCalloutAccessoryView = imageView;
return annView;
}
这样就不用在自定义一个大头针的类了 也许别的大神用的方法更碉堡,我这个仅用了讲解最基础的
so 还不赶快试试