Como criar anotações para personalizar seu mapa aplicativo ios
Qualquer objeto em seu aplicativo iOS em conformidade com o MKAnnotation
Conteúdo
Video: APLICATIVO PARA PERSONALIZAR O BLOQUEIO DE TELA (IOS) #2 l renatalee
o MKAnnotation protocolo exige uma classe que adota esse protocolo para a implementação do coordenada propriedade. É também possível implementar facultativamente título e legenda propriedades. Nesse caso, esse texto será exibido na chamada anotação quando o usuário toca a anotação.
As anotações são exigido pelo protocolo de ter as propriedades em negrito no seguinte código:
Video: O Melhor App Para Fazer Anotações no iPhone
@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate- @ propriedade (nonatomic, readwrite, cópia) NSString * epígrafe @ propriedade (nonatomic, readwrite, cópia) NSString * subtitle-
que&rsquo-s-lo. Você já tem as propriedades no local e inicializado.
Você quer que seus pontos de interesse a ser anotações também.
Você&rsquo-re vai precisar voltar para o objeto para criar as anotações, mas primeiro você tem que adicionar um Anotação classe para o grupo modelo classes, seguindo estes passos:
Video: Como Transformar seu Android Totalmente em um IPHONE 2016
No navegador do projeto, selecione o grupo de modelo de Classes, e em seguida, direita; clique na seleção e escolha Novo arquivo no menu que aparece ou escolha Arquivo → Novo → arquivo no menu principal (ou pressione ⌘ + N) para abrir o New diálogo de arquivo.
Na coluna à esquerda da caixa de diálogo, selecione Cocoa Touch sob o título iOS, selecione o modelo de Objective-C Class no painel superior direito, e clique em Avançar.
Você&rsquo-verá um diálogo que permitirá que você escolha as opções para seu arquivo.
Digite anotação no campo Classe.
Escolha ou digite NSObject na subclasse de campo e, em seguida, clique em Avançar.
Note-se que o alvo para iPad e Com XIB para caixas de seleção da interface do usuário estão desactivados porque eles não são relevantes aqui - Eventos é derivado NSObject, e não qualquer tipo de controlador de visualização.
No Salvar folha que aparece, clique em Criar.
Em seguida, você precisa adicionar o código necessário para uma anotação.
Adicione o código em negrito para Annotation.h.
#importar #importar Anotação @ interface: NSObject@property (nonatomic, readwrite)CLLocationCoordinate2D coordinate-@property (nonatomic, readwrite, cópia) NSString * epígrafe@property (nonatomic, readwrite, cópia) NSString * subtitle--d
Você&rsquo-re usando um genérico Anotação class para exibir os pontos de interesse. Como você construir o aplicativo, você também pode incluir mais informações sobre os pontos de interesse e outras informações, e criar um Ponto de interesse classe.
Então você poderia torná-lo uma subclasse Anotação. Em uma anotação, você também pode ter uma direita e esquerda vista explicativo Acessório, o que exibir no lado direito e esquerdo da bolha chamada padrão, respectivamente.
O ponto de vista explicativo é normalmente usado para conectar-se a informações mais detalhadas sobre a anotação. Além disso, você pode conectar-se a algo como a EventController para exibir informações sobre um Ponto de interesse. Apenas alimento para o pensamento.
#importar "Trip.h"#importar "Destination.h"#importar "Events.h"#importar "Annotation.h"@ interface de viagem () @property (forte, nonatomic) NSDictionary * destinationData- @ propriedade (, nonatomic forte) Destino * destination-@ propriedade (não-atômicas fortes e) Eventos * Eventos-@property (, nonatomic forte) NSMutableArray * pois--d
Agora você pode adicionar o código em negrito na Listagem 17-11 para initWith DestinationIndex: dentro Trip.m. Isto irá transformar os dados de ponto de interesse na plist (POIs) em anotações (ok, apenas um) e adicione o destino como uma anotação para arrancar.
Video: Top Apps de Personalização | Ios Apple Itunes Smartphones
- (Id) initWithDestinationIndex: (int) destinationIndex {auto = [super-Init] -se (auto)) {NSString * filePath = [[NSBundle mainBundle] pathForResource: @"Destinos" OfType: @"plist"] -NSDictionary * Destinos = [NSDictionary dictionaryWithContentsOfFile: filePath] -NSArray * destinationsArray = [destinos objectForKey: @"DestinationData"] -_ destinationData = [destinationsArray objectAtIndex: destinationIndex] -_ destino = [[alloc Destino] initWithDestinationIndex: destinationIndex] -Eventos = [[Eventos alloc] initWithDestinationIndex: destinationIndex] -NSArray * poiData = self.destinationData [@"POIs"] -_pois = [[NSMutableArray alloc]initWithCapacity: [contar poiData] +1] -[_pois addObject: self.destination] -for (NSDictionary * Apoi em poiData) {Anotação * anotação = [[Anotação alloc] inicialização] -CLLocationCoordinate2D coordinate-coordinate.latitude =[Apoi [@"Latitude"] DoubleValue] -coordinate.longitude =[Apoi [@"Longitude"] DoubleValue] -annotation.coordinate = coordinate-annotation.title = Apoi [@"Título"] -annotation.subtitle = Apoi [@"Legenda"] -[Self.pois addObject: anotação] -}}} Auto-retorno
Como você pode ver, você está criando uma Anotação para cada ponto de interesse no poiData array e adicioná-lo a uma matriz de criar - uma matriz que vai realizar todas as anotações que você deseja exibir no mapa.
Se você olhar de perto, você pode ver que Destino está a ser adicionado ao pois matriz bem. Dessa forma, ele também será exibido no mapa.
Você tem que adicionar alguns novos métodos para a interface para que Viagem pode retornar as anotações (e um título do mapa). Você também precisa atualizar o Viageminterface. Para fazer isso, adicione o código em negrito para Trip.h.
@ interface de viagem: NSObject- (UIImage *) destinationImage-- (NSString *) destinationName-- (CLLocationCoordinate2D) destinationCoordinate-- (id) initWithDestinationIndex: (int) destinationIndex-- (NSString *) weather-- (NSUInteger) numberOfEvents-- (NSString *) GetEvent: (NSUInteger) index-- (NSArray *) createAnnotations-- (NSString *) mapTitle--d
Agora você começa a adicionar toda a Viagem métodos que irão ser utilizados pela MapController. Comece adicionando o createAnnotations método para Trip.m.
- (NSArray *) createAnnotations {return self.pois-}
Apesar de pois é uma matriz mutável, você devolvê-lo como uma matriz básica, porque isso é tudo o que é necessário. MapController Ganhou&rsquo-t ser a adição de quaisquer anotações a ele.
Você também precisa adicionar um método para retornar o título do mapa. Adicione o MapTitle método para Trip.m.
- (NSString *) MapTitle {return self.destination.destinationName-}