2016-12-16 2 views
1

С кодом ниже я меняю внешний вид своих контактов и загружаю также изображение из firebase.Swift Firebase скачать аннотации изображения на карте аннотация клика

Проблема в том, что мне нужно, чтобы изображение загружалось только при нажатии булавки, теперь вместо этого все это происходит один раз.

Может ли кто-нибудь сказать мне, как я могу обнаружить нажатый контакт и загрузить только его изображение?

Я новичок в программировании ...

func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? { 

     if !(annotation is SxAnnotations){ 
      return nil 
     } 

      // If no pin view already exists, create a new one. 
      let annotationView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: "pin") 
      annotationView.pinTintColor = .green 
       annotationView.animatesDrop = true 
      annotationView.canShowCallout = true 
      // Because this is an iOS app, add the detail disclosure button to display details about the annotation in another view. 


     let sxAnnotations = annotation as! SxAnnotations 

     let downloadURL = sxAnnotations.image! 

     storageRef.storage.reference(forURL: downloadURL).data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in 
        let image = UIImage(data: data!) 

       annotationView.detailCalloutAccessoryView = UIImageView(image: image) 
        let rightAccessory = UILabel(frame: CGRect(x:0,y:0,width:50,height:30)) 
        rightAccessory.text = sxAnnotations.name! 
        rightAccessory.font = UIFont(name: "Verdana", size: 10) 
        annotationView.rightCalloutAccessoryView = rightAccessory 

      }) 
     return annotationView; 
     } 

редактировать: я знаю, что есть функ:

func mapView(mapView: MKMapView!, didSelectAnnotationView view: MKAnnotationView!) 
{ 
    //Pin clicked, do your stuff here 
} 

, но я не в состоянии осуществить загрузку в этом

ответ

0

Если вы нажмете контакт, один из вариантов - использовать функцию делегата, чтобы затем добавить поведение, например, изменить изображение.

Когда штифт касании карта делегат получит событие и обрабатывается с

optional func mapView(_ mapView: MKMapView, 
     annotationView view: MKAnnotationView, 
     calloutAccessoryControlTapped control: UIControl)