Cómo crear anotaciones para personalizar el mapa de aplicación de ios

Cualquier objeto en su aplicación para iOS que se ajusta a la MKAnnotation protocolo es una anotación a objetos normalmente, objetos de anotación son las clases existentes en su aplicación&rsquo-s modelo. El trabajo de un objeto de anotación es para conocer su ubicación (coordenadas) en el mapa junto con el texto que se mostrará en la llamada.

los MKAnnotation protocolo requiere una clase que adopta ese protocolo para implementar el coordinar propiedad. También se puede aplicar opcionalmente título y subtitular propiedades. En ese caso, ese texto se mostrará en la llamada anotación cuando el usuario toca la anotación.

Las anotaciones se requerido por el protocolo para tener las propiedades en negrita en el siguiente código:

@propiedad (no atómica, lectura-escritura) CLLocationCoordinate2D coordinate- @ propiedad (no atómica, lectura-escritura, copia) NSString * @ title- propiedad (no atómica, lectura-escritura, copia) NSString * subtitle-

Ese&rsquo s-lo. Ya tiene las propiedades en su lugar y inicializado.

Usted quiere que sus puntos de interés que habrán anotaciones también.

Tú&rsquo-re va a tener que ir de nuevo al objeto de crear las anotaciones, pero primero hay que añadir una Anotación clase para el grupo de clases del modelo siguiendo estos pasos:

  1. En el navegador de proyectos, seleccione el grupo de clases del modelo, y luego o bien; haga clic en la selección y elija Nuevo archivo en el menú que aparece o seleccione Archivo → Nuevo → archivo en el menú principal (o pulse ⌘ + N) para abrir el nuevo diálogo de archivo.

  2. En la columna izquierda del cuadro de diálogo, seleccione Cocoa Touch bajo el título de iOS, seleccione la plantilla de Objective-C Class en el panel superior derecho y haga clic en Siguiente.

    Tú&rsquo-ll ver un cuadro de diálogo que le permitirá elegir las opciones para su archivo.

  3. Anotación introducir en el campo Clase.

    Video: Crea Tus FONDOS De Pantalla | iOS & Android App | ZIDACO

  4. Elija o introduzca NSObject en la subclase de campo y luego haga clic en Siguiente.

    Tenga en cuenta que el objetivo para el iPad y Con XI ter de casillas de verificación de interfaz de usuario están atenuados porque no son relevantes aquí - Eventos se deriva de NSObject, y no cualquier tipo de controlador de vista.

  5. En el Guardar la hoja que aparece, haga clic en Crear.

    Video: Cómo personalizar los iconos de las aplicaciones de tu iPhone

A continuación, es necesario agregar el código necesario para una anotación.

Agregue el código en negrita para Annotation.h.

#importar #importar @interface Anotación: NSObject @property (no atómica, lectura y escritura)CLLocationCoordinate2D coordinate-@property (no atómica, lectura-escritura, copia) NSString * título-@property (no atómica, lectura-escritura, copia) NSString * subtitle--re

Tú&rsquo re-uso de un genérico Anotación class para visualizar los puntos de interés. A medida que construye la aplicación, también se puede incluir más información sobre los puntos de interés y otra información, y crear una Punto de interés clase.

Posteriormente, se podría hacer una subclase Anotación. En una anotación, también puede tener una derecha y la izquierda vista de llamada de accesorios, que muestran en el lado derecho e izquierdo de la burbuja de llamada estándar, respectivamente.

La vista de llamada se suele utilizar para vincular a la información más detallada acerca de la anotación. También, se puede vincular a algo como el EventController para mostrar información sobre una Punto de interés. Sólo para la reflexión.

Video: Como Personalizar El Dock y Las Carpetas En IOS 10 Sin Jailbreak

#importar "Trip.h"#importar "Destination.h"#importar "Events.h"#importar "Annotation.h"@interface de viaje () @property (fuerte, no atómica) NSDictionary * @ destinationData- propiedad (fuerte no atómica,) Destino * destino- @ establecimiento Acontecimientos (fuertes, no atómicas) * eventos-@property (fuerte, no atómica) NSMutableArray * pois--re

Ahora puede agregar el código en negrita en el listado 17-11 a initWith DestinationIndex: en Trip.m. Esto a su vez los datos de puntos de interés en el plist (los POI) en anotaciones (bueno, sólo uno) y añadir el destino como una anotación para arrancar.

- (Id) initWithDestinationIndex: (int) destinationIndex {self = [súper init] -Si (auto)) {NSString * filePath = [[NSBundle mainBundle] pathForResource: @"destinos" OfType: @"plist"*] -NSDictionary Destinos = [NSDictionary dictionaryWithContentsOfFile: rutaArchivo] -NSArray * = [destinationsArray destinos objectForKey: @"DestinationData"] -_ destinationData = [destinationsArray objectAtIndex: destinationIndex] -_ destino = [[alloc destino] initWithDestinationIndex: destinationIndex] -Eventos = [[Eventos alloc] initWithDestinationIndex: destinationIndex] -NSArray * poiData = self.destinationData [@"POI"] -_pois = [[NSMutableArray alloc]initWithCapacity: [conteo poiData] 1] -[_pois addObject: self.destination] -para (NSDictionary * Apol en poiData) {Anotación * anotación = [[alloc anotación] init] -CLLocationCoordinate2D coordinate-coordinate.latitude =[Apol [@"Latitud"] DoubleValue] -coordinate.longitude =[Apol [@"Longitud"] DoubleValue] -annotation.coordinate = coordinate-annotation.title = Apoi [@"Título"] -annotation.subtitle = Apoi [@"Subtitular"] -[Self.pois addObject: anotación] -}}} Auto-retorno

Como se puede ver, se está creando una Anotación para cada punto de interés en la poiData matriz y añadirla a una matriz se crea - una matriz que contendrá todas las anotaciones que desea mostrar en el mapa.

Si se mira de cerca, se puede ver que Destino está siendo añadido a la pois array también. De esa manera, él, también, se mostrará en el mapa.

Usted tiene que añadir algunos nuevos métodos para la interfaz de manera que Viaje puede devolver las anotaciones (y un título del mapa). También es necesario actualizar el Viajeinterfaz. Para ello, agregue el código en negrita de Trip.h.

@interface de viaje: NSObject- (UIImage *) destinationImage-- (NSString *) destinationName-- (CLLocationCoordinate2D) destinationCoordinate-- (id) initWithDestinationIndex: (int) destinationIndex-- (NSString *) weather-- (NSUInteger) numberOfEvents-- (NSString *) getEvent: (NSUInteger) en índices- (NSArray *) createAnnotations-- (NSString *) mapTitle--re

Ahora usted tiene que añadir toda la Viaje métodos que serán utilizados por el MapController. Comience agregando el createAnnotations método para Trip.m.

- (NSArray *) {return createAnnotations self.pois-}

Aunque pois es una matriz mutable, lo devuelve como una matriz básica porque es lo único que se necesita. MapController won&rsquo-t ser la adición de cualquier anotación a ella.

Video: La mejor aplicación para crear MAPAS MENTALES - Android e IOS

También es necesario agregar un método para devolver el título del mapa. Añade el maptitle método para Trip.m.

- (NSString *) {return mapTitle self.destination.destinationName-}
Artículos Relacionados