为iPhone Mapkit创建自定义PIN

为iPhone Mapkit创建自定义PIN,iphone,mapkit,Iphone,Mapkit,我正在尝试一些不同的东西 我使用的不是类,而是MKPinAnnotationView和继承的图像实例。以下是注释视图的代码。但它不起作用。什么也看不出来 我还使用MKAnnotationView进行了尝试,得到了相同的结果 - (MKAnnotationView *)mapView:(MKMapView *)eMapView viewForAnnotation:(id <MKAnnotation>)annotation { int postTag = 0; MKA

我正在尝试一些不同的东西

我使用的不是类,而是
MKPinAnnotationView
和继承的图像实例。以下是注释视图的代码。但它不起作用。什么也看不出来

我还使用
MKAnnotationView
进行了尝试,得到了相同的结果

- (MKAnnotationView *)mapView:(MKMapView *)eMapView viewForAnnotation:(id <MKAnnotation>)annotation {

    int postTag = 0;

    MKAnnotationView *pinView = (MKAnnotationView*)[eMapView dequeueReusableAnnotationViewWithIdentifier:@"Pin"];

    if(pinView == nil) {

        pinView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"Pin"];
        pinView.frame = CGRectMake(0, 0, 25, 25);

    } else {

        pinView.annotation = annotation;

    }

    pinView.image = [UIImage alloc];

    NSString *data_annotation = [annotation getData];

    if([data_annotation length] == 0) {
        pinView.image = [UIImage imageNamed:@"pinYellow.png"];          
    //  pinView.pinColor = MKPinAnnotationColorGreen;
    }
    else if(([[data_annotation rangeOfString:@"GRAY"].location != NSNotFound)){
            pinView.image = [UIImage imageNamed:@"pinGray.png"];            
    //  pinView.pinColor = MKPinAnnotationColorPurple;
    }
    else {
        pinView.image = [UIImage imageNamed:@"pinRed.png"];         
    //  pinView.pinColor = MKPinAnnotationColorRed;
    }

    // Set up the Right callout
    UIButton *myDetailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    myDetailButton.frame = CGRectMake(0, 0, 23, 23);
    myDetailButton.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    myDetailButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

    [myDetailButton addTarget:self action:@selector(checkButtonTapped:) forControlEvents:UIControlEventTouchUpInside];

    // Identify which pin is being selected
    if ([[annotation title] isEqualToString:@"Current Location"]) {
        postTag = 99999;
    } else {
        postTag = [annotation getPinID];

    } 

    myDetailButton.tag  = postTag;

    pinView.rightCalloutAccessoryView = myDetailButton;

    //pinView.animatesDrop = YES;

    // Set to show a callout on the pin
    pinView.canShowCallout = YES;

    return pinView;
}
-(MKAnnotationView*)映射视图:(MKMapView*)eMapView视图用于注释:(id)注释{
int-postTag=0;
MKAnnotationView*pinView=(MKAnnotationView*)[eMapView-dequeuereusableannotationview-with-identifier:@“Pin”];
如果(pinView==nil){
pinView=[[MKAnnotationView alloc]initWithAnnotation:annotation重用标识符:@“Pin”];
pinView.frame=CGRectMake(0,0,25,25);
}否则{
pinView.annotation=注释;
}
pinView.image=[UIImage alloc];
NSString*data_annotation=[annotation getData];
如果([data_annotation length]==0){
pinView.image=[UIImage ImageName:@“pinYellow.png”];
//pinView.pinColor=MKPinAnnotationColorGreen;
}
else if(([[data_annotation rangeOfString:@“GRAY”].location!=NSNotFound)){
pinView.image=[UIImage ImageName:@“pinGray.png”];
//pinView.pinColor=MKPinAnnotationColorPurple;
}
否则{
pinView.image=[UIImage ImageName:@“pinRed.png”];
//pinView.pinColor=MKPinAnnotationColorRed;
}
//设置右标注
UIButton*myDetailButton=[UIButton Button类型:UIButtonTypedTailButton];
myDetailButton.frame=CGRectMake(0,0,23,23);
myDetailButton.contentVerticalAlignment=uicontrolContentVerticalAlignment中心;
myDetailButton.contentHorizontalAlignment=uicontrolContentHorizontalAlignment中心;
[myDetailButton添加目标:自我操作:@选择器(checkButtonTapped:)用于控制事件:UIControlEventTouchUpInside];
//识别正在选择的pin
if([[annotation title]isEqualToString:@“当前位置”]){
postTag=99999;
}否则{
postTag=[annotation getPinID];
} 
myDetailButton.tag=postTag;
pinView.rightCalloutAccessoryView=myDetailButton;
//pinView.animatesDrop=是;
//设置为在接点上显示详图索引
pinView.canShowCallout=是;
返回pinView;
}

需要更多的上下文代码。这段代码是否在MKAnnotationView的子类中?我刚刚将其添加到viewForAnnotation方法中。我发现我必须为此创建一个新类。这个新类是MKAnnotationView的后代吗?是否有人可以发布1)一个示例类文件的副本,用于将图像声明为注释视图,以及2)l一系列代码,我会把它们放在视图中,以便于调用自定义图像?谢谢