2012-04-08 18 views
0

現在の位置ピンとのユーザーのやりとりをブロックするにはどうすればよいですか?私はこのような問題を抱えています:私はマップ上に多くのピンを持っていて、それらが近くにあり、 "現在の位置"ピンの周りにいる場合、そのピンはブロックするために私がやりたいクリックイベントを受け取ります。バブルの「現在地」を表示したくありません。 私はそれが* pinView.canShowCallout = NOの何かであることを知っています。どのようにピンが私の場所であるかを知ることができますか? おかげ目的C地図上の現在の位置ピンとのユーザーのやりとりをブロックする方法

答えて

0

これはあなたが必要なものを与える必要があります。..

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

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

それが動作するかどうか、私に教えてください... :)

0

あなたはそれ少なくとも一つを選択する必要があるため、これは動作しません。それをうまく、しかし、おかげでとにかくそれは検索開始点のための非常に多くを助けた:) 私はこのコードでそれをやったします

- (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; 
     } 
    } 
} 

ビューとtを見つける必要がありますそれを適用する裾。私はのMapViewにそれを制限しようとする(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation

+0

:viewForAnnotation方法Iは、ループのため不必要であるかなり確信しているとして - :中

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

もあなたはこれを配置する必要があります。 viewForAnnotationの –

+0

にはnilを返さなければならないので、実際にそこでこれを行うオブジェクトはありません。 –

関連する問題