Na segunda parte deixamos implementado o Pin porém ao apertar o botão informação nada acontece para isso vamos criar um delegate nessa última parte do tutorial.
1 – Criamos a função que também pertence ao mapView e o método(_:annotationView:calloutAcessoryControTapped:) é chamado toda vez que um controle é tocado em algum callout.
func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, calloutAccessoryControlTapped control: UIControl!) { if control is UIButton{ var alert = UIAlertController(title:"Bom Restaurante",message:"Bem-vindo", preferredStyle: UIAlertControllerStyle.Alert) var action = UIAlertAction(title: "Obrigado", style: UIAlertActionStyle.Cancel, handler: nil) alert.addAction(action) self.presentViewController(alert, animated: true, completion: nil) } }
Ao rodarmos o programa e clicarmos no botão i teremos um balão de informações:
2 – Vamos colocar uma nova imagem para PIN e para isso deveremos trocar:
var pin = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as! MKPinAnnotationView!
por:
var pin = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as! MKPinAnnotationView!
retirando a classe MKPintAnnotationView e retirando o código que não estará copilando:
pin.pinColor = .Green //Configuramos aqui a cor do Pin pin.animatesDrop = true //E sua animacao
adicionando:
pin.image = UIImage(named: "red_pin") //Adicionando imagem ao Pin pin.centerOffset = CGPointMake(0, -10) //Modificando um pouco o centro em relação ao tamanho da imagem
Assim terminamos esse tópicos do mapKit porém existe muitos outros importantes como:
MKLocalSearch
MkDirections e Routing Apps
MKOverlay
CLHeading e Bússola
CLRegion e Geofencing
Muito obrigado e até breve.
Top !