0

現在の場所のPINを使用したユーザーの操作をブロックするにはどうすればよいですか?私はこのような問題を抱えています:私は私の地図上にたくさんのピンを持っています、そしてそれらが近くにありそしてそれらが「私の現在の場所」ピンの周りにあるなら、そのピンは私がそれをブロックしたいクリックイベントを取ります。バブル「現在地」を表示したくありません。私はそれが*pinView.canShowCallout=NOであるものであることを知っています。しかし、どのピンが私の場所であるかをどうやって知ることができますか?ありがとう

4

2 に答える 2

0

これはあなたが必要なものを与えるはずです。

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view{

if ([annotation isKindOfClass:[MKUserLocation class]]) {
    view.canShowCallout=NO;
    }
}

それが機能するかどうか私に知らせてください..:)

于 2012-04-08T19:36:50.403 に答える
0

これを解決するには少なくとも1つを選択する必要があるため、これは機能しませんが、とにかく検索の開始点に非常に役立ちました:)私はこのコードでそれを行いました:

    - (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
    for(int i = 0; i< [views count]; i++)
    {
        if([[[[views objectAtIndex:i] class] description] isEqualToString:@"MKUserLocationView"])
        {
            ((MKAnnotationView*)[views objectAtIndex:i]).canShowCallout = NO;
        }
    }
}

ビューを見つけて、適用する必要があります。

また、これを置く必要があります:

if ([annotation isKindOfClass:[MKUserLocation class]]) {
        [mapView viewForAnnotation:annotation].canShowCallout = NO;
        return [mapView viewForAnnotation:annotation];

    }

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

于 2012-04-08T21:12:03.483 に答える