2016-02-28 30 views
2

我使用的是從這裏https://github.com/ribl/FBAnnotationClusteringSwift如何在swift中使用標記聚類的同時在我的蘋果地圖上的引腳添加註釋視圖?

採取一個簡單的標記集羣和我見負責把地圖上的任一組或一針這部分代碼:

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { 
     var reuseId = "" 
     if annotation.isKindOfClass(FBAnnotationCluster) { 
      reuseId = "Cluster" 
      var clusterView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) 
      clusterView = FBAnnotationClusterView(annotation: annotation, reuseIdentifier: reuseId, options: nil) 
      return clusterView 
     } else { 
      reuseId = "Pin" 
      var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView 
      pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
      pinView!.pinColor = .Green 
      return pinView 
     } 
    } 

它正常工作,我看到羣或單引腳,但現在我想添加一個彈出的每一個引腳,用戶按下,類似這裏介紹:

enter image description here

我發現這個screensh加時賽這裏http://www.raywenderlich.com/90971/introduction-mapkit-swift-tutorial 並按照本教程中,我創建了一個類SingleRequest,並修改上面的代碼中所提到的,所以現在它看起來像這樣:

func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! { 
     var reuseId = "" 
     if annotation.isKindOfClass(FBAnnotationCluster) { 
      reuseId = "Cluster" 
      var clusterView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) 
      clusterView = FBAnnotationClusterView(annotation: annotation, reuseIdentifier: reuseId, options: nil) 
      return clusterView 
     } else { 
      reuseId = "Pin" 

      if let annotation = annotation as? SingleRequest { 

      var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView 
      pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId) 
      pinView!.pinColor = .Green 
      pinView!.canShowCallout = true 
      pinView!.calloutOffset = CGPoint(x: -5, y: 5) 
      pinView!.rightCalloutAccessoryView = UIButton(type: .DetailDisclosure) as UIView 

      return pinView 
      } 
      return nil 
     } 


    } 

但儘管如此,沒有什麼明顯的,當我點擊地圖上的銷。 更重要的是,單針現在是紅色(默認顏色),所以看起來這行:

pinView!.pinColor = .Green

的代碼將被忽略,可能是休息了。

我在這裏錯過了什麼?

回答

0

我在2天裏遇到了同樣的麻煩。我不知道它是否出於同樣的原因(但沒有足夠的評論聲望)。 (是的,我現在有點晚了,對不起^^)

你有你的viewDidLoad()功能這一行,在你的ViewController:

mapView.delegate = self 

此外,關於你的顏色,您使用行已棄用。試試這個:

pinView?.pinTintColor = UIColor.purpleColor() 

希望它有幫助。

相關問題