如下所示,我有一个带右键的注释视图。当用户点击右键时我会弹出一个弹出框 - 问题是我不知道用户在哪里敲击,所以我没有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;
答案 0 :(得分:6)
简单实施
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
每次用户点击calloutAccessoryControl时,都会调用您的委托。然后,您可以通过
访问注释属性view.annotation
我比使用(id)发件人更喜欢这种方法的原因是你实际上不仅可以访问你的注释lat&长坐标,但实际与之关联的任何数据,以便您可以在弹出视图中使用它。
答案 1 :(得分:1)
您的操作方法showDetailsForHotel:
包含sender
参数,该参数是已点按的按钮。您可以像任何视图一样询问它的坐标。