Objective-C e Xcode: Google Maps no iPhone e iPad

Olá galera vou mostrar como usar o GoogleMaps em suas aplicações para iPhone/iPad.
Nesse artigo estarei mostrando como usar MapKit.framework nativo do Xcode e também utilizar o Segmented Control.
Estou utilizando a versão do 3.2.6 do Xcode mais creio que com algumas versões anteriores pode funcionar também.
Primeiro vamos criar um projeto utilizando a opção View-based Application e dar o nome de Google Maps.

Clique com o botão direito do mouse em cima da pasta Frameworks e siga para Add > Existing Frameworks. Procure por MapKit.framework, selecione e clique no botão Add. O MapKit.framework irá aparecer dentro da pasta Frameworks

Feito isso, vamos agora criar os métodos necessários para nossa aplicação rodar. Vá até a pasta Class e clique no arquivo Google_MapsViewController.h. É nele que vamos criar nosso diretrizes e principalmente importar o MapKit.framework, vamos seguir o passo-a-passo abaixo.

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface Google_MapsViewController : UIViewController {

    MKMapView *verMapa;

}

@property (nonatomic, retain)IBOutlet MKMapView *controleMapa;

- (IBAction)controleMapa:(id)sender;

@end

Repare que importei a biblioteca e crie um botão controleMapa que sera um Segmented Control e também foi criado a MKMapView, chamada de verMapa.

Reconhecendo todo o ambiente de trabalho do Xcode vamos para a pasta que cor lilas chamada Interface Builder Files e dar duplo click no arquivo Google_MapsViewController.xib, com isso o Interface Builder é aberto e nossa tela de edição fica em evidência.

Em nossa Library vamos arrastar uma Toolbar e retirar o botão default, no lugar do botão retirado vamos arrastar o Segmented Control, ele vêm com dois botões mais vamos colocar três (logo em seguida irei mostrar como editar e colocar os valores dentro dele) que vem e depois arrastar uma Map View e joga ela acima, ficando assim:

Para editar as configurações de um Segmented Control você tem que clicar nele, ir para aba Attributes, onde tem a opção Segments: 2 você troca por 3 e terá um combo com três opções: Segment 0, Segment 1 e Segment 2, abaixo dele existe um campo Title, é nele que você vai editar os valores do campo, veja como ficou na imagem abaixo:

Clique na imagem para ver ela ampliada

Ainda no Interface Builder, clique em File’s Owner e vá em Connections e arraste o verMapa para o MKMap View e o controleMapa para o Segmented Control ficando assim:

Clique na imagem para ver ela ampliada

OBS: quando você arrastar o controleMapa para o Segmented Control ele vai aparecer uma lista de opções, você escolhe a opção Value Changed, pois quando você clicar no Segmented Control ele vai passer os valores 0, 1 e 2 para a funcão controleMapa que já está recebendo o (id)sender.

Salve e feche o Interface Builder e vamos voltar para o Xcode. Volte para a pasta Class e abra o arquivo Google_MapsViewController.m e jogue o seguinte código:

#import "Google_MapsViewController.h"

@implementation Google_MapsViewController

- (IBAction)controleMapa:(id)sender {

    switch (((UISegmentedControl *)sender).selectedSegmentIndex) {
        case 0:
            verMapa.mapType = MKMapTypeStandard;
            break;

        case 1:
            verMapa.mapType = MKMapTypeSatellite;
            break;

        case 2:
            verMapa.mapType = MKMapTypeHybrid;
            break;
    }

}

- (void)dealloc {
    [verMapa dealloc];
    [super dealloc];
}

Repare que usei o UISegmentedControl para pegar o valor atual que foi jogado no Segmented Control e coloquei um switch para ficar mais fácil, cada case tem sua funcionalidade, fechei meu projeto com o [verMapa dealloc]; e vamos ver como ele ficou?

É isso aí, galera, podem perguntar se tiverem dúvidas. Pegue aqui o código completo do projeto.
Abraços e até a próxima.

Agência OFF, desenvolvimento de soluções web para as Agências Digitais

programador javascript em salvador bahia, programador javascript na bahia, front-end salvador bahia, montagem sites salvador bahia