Core Location E MapKit – Swift – Parte 3

On 6 de maio de 2015 by Pedro Duarte

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:

Captura de Tela 2015-05-06 às 14.58.00

 

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.

One Response to “Core Location E MapKit – Swift – Parte 3”

Deixe um comentário

O seu endereço de e-mail não será publicado.