0

MKMapView に MKPlacemark が付いています。地図を表示する際に、目印のタイトルを表示しています。今まではすべて順調です。

ユーザーがタイトルに触れたときにタイトルを非表示にすることを無効にしたい。

追加してみました

myMapView.userInteractionEnabled = NO;
myMapView.multipleTouchEnabled = NO;

これは役立ちますが、マップとの相互作用を完全に無効にします。ズームイン/ズームアウトとマップの移動の可能性を残したいです。

4

3 に答える 3

0

MapKit Delegateメソッドで、次のコードを試してください

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

    static NSString *defaultPinID = @"com.invasivecode.pin";
    MKPinAnnotationView *pinView  = (MKPinAnnotationView *)[yourMapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
    pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
    if (annotation == yourMapview.userLocation)
        return nil;

    pinView.pinColor = MKPinAnnotationColorRed;

    pinView.userInteractionEnabled = NO;

    //pinView.canShowCallout = YES;
    pinView.animatesDrop = YES;

    return pinView;
}

ここで、このロジックで目印を使用すると、うまくいく可能性があります....希望、これはあなたを助けます... :)

于 2012-05-12T11:10:54.207 に答える
0

PIN を作成する代わりに、カスタム アノテーションを作成します。カスタム アノテーションで、ユーザーに表示するすべての情報を含むビューを作成し、目印を無効にします。これにより、タップを処理することは想定されていませんが、1 つの緯度/経度に関連付けられたすべての静的/動的情報が表示されます。

于 2012-05-08T05:29:06.540 に答える
0

次のコードはトリックをしました

for (UIGestureRecognizer *g in [myMapView gestureRecognizers]) 
        [myMapView removeGestureRecognizer:g];
于 2012-05-12T10:59:23.823 に答える