如何在点击右侧标注配件视图时跟踪其位置

时间:2010-11-24 17:17:11

标签: iphone objective-c

如下所示,我有一个带右键的注释视图。当用户点击右键时我会弹出一个弹出框 - 问题是我不知道用户在哪里敲击,所以我没有X和Y来显示弹出窗口。

如何找出用户点击的位置,即X和Y?

HotelAnnotationView *customPinView = [[HotelAnnotationView alloc] initWithAnnotation:theHotel reuseIdentifier:hotelPin];

//The right button which allows user to see hotel information
UIButton* rightButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[rightButton addTarget:self action:@selector(showDetailsForHotel:) forControlEvents:UIControlEventTouchUpInside];

rightButton.tag = theHotel.id;
customPinView.rightCalloutAccessoryView = rightButton;

2 个答案:

答案 0 :(得分:6)

简单实施

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control

每次用户点击calloutAccessoryControl时,都会调用您的委托。然后,您可以通过

访问注释属性
view.annotation

我比使用(id)发件人更喜欢这种方法的原因是你实际上不仅可以访问你的注释lat&长坐标,但实际与之关联的任何数据,以便您可以在弹出视图中使用它。

答案 1 :(得分:1)

您的操作方法showDetailsForHotel:包含sender参数,该参数是已点按的按钮。您可以像任何视图一样询问它的坐标。