我想檢測右側的CALLOUTAccessoryView是否已經通過下面的委託方法點擊了,我該怎麼做?檢測在calloutAccessoryControlTapped委託中點擊哪個配件視圖
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)contro
我想檢測右側的CALLOUTAccessoryView是否已經通過下面的委託方法點擊了,我該怎麼做?檢測在calloutAccessoryControlTapped委託中點擊哪個配件視圖
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)contro
calloutAccessoryControlTapped
方法將被觸發兩個leftCalloutAccessoryView
和rightCalloutAccessoryView
水龍頭行動。要區分附件視圖,您可以在創建配件視圖時爲其設置tag
。在您的calloutAccessoryControlTapped
方法中,您可以檢查標記值並根據標記值執行相應的操作。
例如,假設你已經分別設定1
和2
您left
和right
附屬視圖的tags
。然後你calloutAccessoryControlTapped
方法看起來就像下面,
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
if ([control tag] == 1) {
// Left Accessory Button Tapped
} else if ([control tag] == 2) {
// "Right Accessory Button Tapped
}
}
我會用下面的實現:
func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
switch control {
case let left where left == view.leftCalloutAccessoryView:
// tap on left
break
case let right where right == view.rightCalloutAccessoryView:
// tap on right
break
default:
break
}
}
的switch
語法有點比平時由於leftCalloutAccessoryView
和rightCalloutAccessoryView
是自選更加複雜,但它避免使用標籤。
你已經實現了`calloutAccessoryControlTapped:`方法嗎?或者,你想知道如何實現?或者,您對此有其他問題?更加詳細一些。 – EmptyStack 2011-01-31 05:47:09
那麼有兩個accessoryView,左和右..所以這個委託實際上何時被解僱?它是左右配件視圖嗎?我只想在觸發rightAccessoryView時觸發這一個。 – aherlambang 2011-01-31 06:09:40