我有一系列的緯度和經度以及其他東西,我想在Map視圖中創建註釋。我正在使用MapKit。註解在地圖視圖中的標註操作
當用戶單擊註釋標註時,我將顯示另一個控制器。我無法找到用於創建特定註釋的數組元素的索引。
以下是我的代碼。
我有一個int變量
var annotationIndex = 0
這是我添加註釋
func addAnnotation(latitude: Double, longitude: Double, title: String, subTitle: String?) {
if (latitude >= -90 && latitude <= 90) && (longitude >= -180 && longitude <= 180) {
let location = CLLocationCoordinate2D(latitude: latitude, longitude: longitude)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: location, span: span)
mapView.setRegion(region, animated: true)
let annotation = MKPointAnnotation()
annotation.coordinate = location
annotation.title = title
annotation.subtitle = subTitle
mapView.addAnnotation(annotation)
}
}
這是一個MKMapViewDelegate方法來自定義註釋
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView!
{
if !(annotation is MKPointAnnotation)
{
return nil
}
let reuseId = "test"
var aView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
aView.canShowCallout = true
let btn = UIButton.buttonWithType(UIButtonType.DetailDisclosure) as! UIButton
btn.addTarget(self, action: "btnDisclosureAction:", forControlEvents: UIControlEvents.TouchUpInside)
btn.tag = annotationIndex
annotationIndex++
aView.rightCalloutAccessoryView = btn
return aView
}
這是rightCalloutAccessoryView按鈕操作
func btnDisclosureAction(sender: UIButton) {
println(sender.tag)
}
現在我只是打印標註摺疊式按鈕標籤,我嘗試使用annotationIndex變量來設置它。
由於annotationView被重用,我無法得到確切的索引值。是否有更好的方法來做到這一點?
以下是我的代碼。但是哪裏 ? –
對不起,現在加入 – Matt
如果你能將它轉換成swift,我可以幫助你使用Objective-C。 –