0

どのコールアウト バブルがクリックされたかを特定するのに苦労しています。

ここでいくつかの例を試したので、吹き出しの吹き出しを特定する方法はありますか?

私が使おうとしてきた次の答えですが、私はそれらと混同しています

どの注釈吹き出しがクリックされたかを追跡する方法

注釈のタグ付けを検討していますが、それは私を混乱させます。:(

上記のリンクの2番目の回答から引用:

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

if ([annotation isKindOfClass:[MKUserLocation class]]){
    return nil;

    if(annotation.tag == 111)
        //Do something
    else
        //Do some other thing
}

このスニペットの最初の部分はどのように機能しますか。おそらく、それをよりよく理解していれば、何を扱っているかがわかります。

また、コールアウトがクリックされたときにタグを取得して、アプリをそれぞれ応答させるにはどうすればよいでしょうか。

4

2 に答える 2

0

MKPinAnnotationView をサブクラス化して、いつ識別できるようにすることができます。

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKPinAnnotationView *)view

と呼ばれます。

于 2013-01-09T14:42:37.753 に答える
0

MKAnnotation を拡張するクラスを作成し、タグのようないくつかのプロパティを作成し、一意の値またはタグを割り当てて、mapview のように追加する必要があります。

Place* home = [[Place alloc] init] ;
home.name = [dForMap valueForKey:@"shortaddress"];
home.latitude = [[dForMap valueForKey:@"latitude"]floatValue];
home.longitude = [[dForMap valueForKey:@"longitude"]floatValue];
home.description = [dForMap valueForKey:@"shortaddress"];
home.flierid = count;
PlaceMark* from = [[PlaceMark alloc] initWithPlace:home] ;
from.flierid = count;
from.mapAnnotationType = MapAnnotationTypeProperty;    
[self addAnnotation:from];

吹き出しをクリックすると、このように didSelectAnnotationView メソッドでプロパティを確認できます。

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
PlaceMark *a = (PlaceMark*)view.annotation;
Place *test = a.place;
int tag = test.flierid;
}

ありがとう。

于 2013-10-25T07:52:51.367 に答える