Core Location
No primeiro post chegando até o ponto de o usuário liberar ou não sua localização. Neste tutorial iremos add um restaurante em nosso mapa.
1 – Vamos adicionar um restaurante no nosso mapa através da função MKPointAnnotation que ira indicar um ponto no mapa:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationManager.delegate = self // inicializada por padrao
locationManager.requestWhenInUseAuthorization()
// requisitar o uso da localizacao com o aplicativo em
//primeiro plano
var point = MKPointAnnotation();
point.coordinate = CLLocationCoordinate2DMake(37.331507, -122.033354)
point.title = "La Cave Restaurante"
point.subtitle = "perto de você"
mapView.addAnnotation(point)
mapView.showAnnotations([point], animated: false)
}
Como essa função não tem representação visual vamos para o passo dois:
Passo 2 Core Location
2 – Temos que implementar o protocolo MKMapViewDelegate sem esquecer de configura-lo na viewDidLoad():
class MapKitViewController: UIViewController, CLLocationManagerDelegate,
MKViewDelegate{
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view,
//typically from a nib.
mapView.delegate = self
Passo 3 – Core Location
3 – Agora vamos implementar o método viewForAnnotation:
func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -> MKAnnotationView! {
var identifier = "CustomAnnotation"
//Aqui criamos uma identificador unico.
if annotation.isKindOfClass(MKUserLocation){
return nil
}
if annotation.isKindOfClass(MKPointAnnotation){
//Verificamos se a classe pertence a um point annotation. Se isso for verdade criamos uma nova notação
var pin = mapView.dequeueReusableAnnotationViewWithIdentifier(identifier) as! MKPinAnnotationView!
if pin == nil {
pin = MKPinAnnotationView(annotation: annotation, reuseIdentifier: identifier)
pin.pinColor = .Green //Configuramos aqui a cor do Pin
pin.animatesDrop = true //E sua animacao
pin.canShowCallout = true // Inserimos uma balao de informacaoes
//Callout
var button = UIButton.buttonWithType(.DetailDisclosure) as! UIButton
pin!.leftCalloutAccessoryView = button // do lado esquerdo colocamos um botao
var image = UIImageView(image: UIImage(named: "item_check")!)
pin!.rightCalloutAccessoryView = image
}else{
pin!.annotation = annotation
}
return pin
}
return nil
}
}
4 – Quando rodar o aplicativo você virá além da sua localização um ponto marcado no mapa.
Por aqui é isso até o próximo.

