0

iOSアプリケーションにMKMapViewを実装しようとしています。指定された場所とピンでmapViewを取得しました。これらのピンをタップすると、タイトルとサブタイトルも取得します。次に、このビューに詳細な開​​示ボタンを含めます。タイトルとサブタイトルが表示されます。そのために、以下のコードを使用しました[MKPinannotation詳細開示ボタン-現在の新しいビューは最初のメソッド内に入りますが、detailDisclosureButtonは表示されません。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
    MKPinAnnotationView *pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:@"pinView"];
    if (!pinView) {
        pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pinView"] autorelease];
        pinView.pinColor = MKPinAnnotationColorRed;
        pinView.animatesDrop = YES;
        pinView.canShowCallout = YES;

        UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        pinView.rightCalloutAccessoryView = rightButton;
    } else {
        pinView.annotation = annotation;
    }
    return pinView;
}


- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped
{
}

今、私は何ができますか?誰でも見て、私を助けてください...

4

2 に答える 2

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

    pinView = nil; 
    if(annotation != map.userLocation) 
    {
        NSString *defaultPinID =@"com.invasivecode.pin1";
        pinView = (MKPinAnnotationView *)[map dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
        if ( pinView == nil ) pinView = [[[MKPinAnnotationView alloc]
                                          initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
        UIButton *btnGo = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        [btnGo addTarget:self action:@selector(goToLocation:)  forControlEvents:UIControlEventTouchUpInside];
        pinView.rightCalloutAccessoryView=btnGo;
        pinView.canShowCallout = YES;
        pinView.animatesDrop = YES;
        pinView.draggable=NO;
    } 
    else {
        [map.userLocation setTitle:@"I am here"];
    }
    return pinView;
}

これを.hファイルで宣言します

MKPinAnnotationView *pinView
于 2013-03-19T06:31:40.467 に答える
0

rightButtonのフレームを設定してみてください。

rightButton.frame = CGRectMAke (x,y,width,height);
于 2013-03-19T06:26:23.100 に答える