Accueil Médias sociaux Comment créer des annotations pour personnaliser votre application iOS Map - mannequins

Comment créer des annotations pour personnaliser votre application iOS Map - mannequins

Vidéo: Utiliser et personnaliser le centre de contrôle sur votre iPhone ou iPad - Assistance Apple 2025

Vidéo: Utiliser et personnaliser le centre de contrôle sur votre iPhone ou iPad - Assistance Apple 2025
Anonim

Tout objet de votre application iOS conforme au protocole MKAnnotation est un objet Annotation; Généralement, les objets d'annotation sont des classes existantes dans le modèle de votre application. Le travail d'un objet Annotation est de connaître son emplacement (coordonnées) sur la carte avec le texte à afficher dans la légende.

Le protocole MKAnnotation requiert une classe qui adopte ce protocole pour implémenter la propriété de coordonnées. Il peut également éventuellement implémenter les propriétés de titre et de sous-titre. Dans ce cas, ce texte sera affiché dans la légende d'annotation lorsque l'utilisateur appuie sur l'annotation.

Les annotations sont requises par le protocole pour que les propriétés soient mises en gras dans le code suivant:

@property (nonatomic, readwrite ) Coordonnée CLLocationCoordinate2D; @property (nonatomic, readwrite, copy ) NSString * titre; @property (nonatomic, readwrite, copy ) Sous-titre NSString *;

C'est tout. Vous avez déjà les propriétés en place et initialisées.

Vous voulez également que vos points d'intérêt soient des annotations.

Vous allez devoir revenir à l'objet pour créer les annotations, mais vous devez d'abord ajouter une classe Annotation au groupe Classes de modèle en procédant comme suit:

  1. Dans le navigateur de projet, sélectionnez le modèle. Classes, puis cliquez avec le bouton droit sur la sélection et choisissez Nouveau fichier dans le menu qui s'affiche ou choisissez Fichier → Nouveau → Fichier dans le menu principal (ou appuyez sur ⌘ + N) pour ouvrir la boîte de dialogue Nouveau fichier.

  2. Dans la colonne de gauche de la boîte de dialogue, sélectionnez Cocoa Touch sous l'en-tête iOS, sélectionnez le modèle Objective-C Class dans le volet supérieur droit, puis cliquez sur Suivant.

    Vous verrez une boîte de dialogue qui vous permettra de choisir les options pour votre fichier.

  3. Entrez l'annotation dans le champ Classe.

  4. Choisissez ou entrez NSObject dans le champ Sous-classe de, puis cliquez sur Suivant.

    Notez que les cases à cocher Cible pour iPad et Avec XIB pour interface utilisateur sont grisées car elles ne sont pas pertinentes ici - Les événements sont dérivés de NSObject et non de tout type de contrôleur de vue.

  5. Dans la feuille Enregistrer qui s'affiche, cliquez sur Créer.

Ensuite, vous devez ajouter le code nécessaire pour une annotation.

Ajoutez le code en gras à Annotation. h.

#import #import @interface Annotation: NSObject @property (nonatomic, readwrite) Coordonnée CLLocationCoordinate2D; @property (nonatomic, readwrite, copy) NSString * titre; @property (nonatomic, readwrite, copy) Sous-titre NSString *; -d

Vous utilisez une classe d'annotation générique pour afficher les points d'intérêt.Au fur et à mesure que vous développez l'application, vous pouvez également inclure plus d'informations sur les points d'intérêt et d'autres informations, et créer une classe PointofInterest.

Alors vous pourriez en faire une sous-classe Annotation. Dans une annotation, vous pouvez également avoir une vue Accessoire de légende droite et gauche, qui s'affiche respectivement sur les côtés droit et gauche de la bulle de légende standard.

La vue Légende est généralement utilisée pour lier des informations plus détaillées sur l'annotation. En outre, vous pouvez lier à quelque chose comme EventController pour afficher des informations sur un PointofInterest. Juste de la nourriture pour la pensée.

#import "Trip.h" #import "Destination.h" #import "Evénements.h" #import "Annotation.h" @interface Trip () @property (fort, non atomique) NSDictionary * destinationData; @property (fort, nonatomic) Destination * destination; @property (fort, nonatomic) Événements * événements; @property (fort, non atomique) NSMutableArray * pois; -d

Vous pouvez maintenant ajouter le code en gras dans la liste 17-11 à initWith DestinationIndex: dans Trip. m. Cela transformera les données de point d'intérêt du plist (les POI) en annotations (d'accord, une seule) et ajoutera la destination sous forme d'annotation pour démarrer.

- (id) initWithDestinationIndex: (int) destinationIndex {self = [super init]); if (self)) {NSString * filePath = [[NSBundle mainBundle] pathForResource: @ "Destinations" deType: @ "plist"]; NSDictionary * destinations = [NSDictionary dictionaryWithContentsOfFile: filePath]; NSArray * destinationsArray = [destinations objectForKey: @ "DestinationData"]; _destinationData = [destinationsArray objectAtIndex: destinationIndex]; _destination = [[Destination alloc] initWithDestinationIndex: destinationIndex]; events = [[Evénement alloc] initWithDestinationIndex: destinationIndex]; NSArray * poiData = self. destinationData [@ "POI"]; _pois = [[NSMutableArray alloc] initWithCapacity: [nombre de poiData] +1]; [_ pois addObject: moi-même. destination]; pour (NSDictionary * aPOI dans poiData) { Annotation * annotation = [[Annotation alloc] init]; Coordonnée CLLocationCoordinate2D; coordonnée. latitude = [aPOI [@ "Latitude"] doubleValue]; coordonnée. longitude = [aPOI [@ "Longitude"] doubleValue]; annotation. coordonnée = coordonnée; annotation. title = aPOI [@ "Titre"]; annotation. sous-titre = aPOI [@ "Sous-titre"]; [moi-même. pois addObject: annotation]; } } return self;}

Comme vous pouvez le voir, vous créez une annotation pour chaque point d'intérêt dans le tableau poiData et l'ajoutez à un tableau que vous créez - un tableau qui contiendra tout les annotations que vous souhaitez afficher sur la carte.

Si vous regardez attentivement, vous pouvez voir que Destination est ajouté au tableau pois. De cette façon, il apparaîtra également sur la carte.

Vous devez ajouter de nouvelles méthodes à l'interface afin que Trip puisse renvoyer les annotations (et un titre de carte). Vous devez également mettre à jour le Tripinterface. Pour ce faire, ajoutez le code en gras à Trip. h.

@interface Trip: NSObject - (UIImage *) destinationImage; - (NSString *) nomDestination; - (CLLocationCoordinate2D) destinationCoordinate; - (id) initWithDestinationIndex: (int) destinationIndex; - (NSString *) temps; - (NSUInteger) numberOfEvents; - (NSString *) getEvent: (NSUInteger) index; - (NSArray *) createAnnotations; - (NSString *) mapTitle; -d

Vous pouvez maintenant ajouter toutes les méthodes de Trip qui seront utilisées par MapController.Commencez par ajouter la méthode createAnnotations à Trip. m.

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

Même si pois est un tableau mutable, vous le renvoyez en tant que tableau de base, car c'est tout ce dont vous avez besoin. MapController n'y ajoutera aucune annotation.

Vous devez également ajouter une méthode pour renvoyer le titre de la carte. Ajoutez la méthode maptitle à Trip. m.

- (NSString *) mapTitle {return self. destination. destinationName;}
Comment créer des annotations pour personnaliser votre application iOS Map - mannequins

Le choix des éditeurs

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Grande question est toujours sur la sécurité. Comment pouvez-vous repérer les failles de sécurité hébergées sur le Web pour protéger votre site et garantir qu'il ne sera pas piraté? La réponse courte est la suivante: Vous ne pouvez pas. Tout est piratable avec suffisamment de temps, des cerveaux sournois et des ressources. Cependant, il y a des choses que vous pouvez faire pour vous protéger un peu. ...

Comment utiliser MySQL Workbench pour votre site Web - dummies

Comment utiliser MySQL Workbench pour votre site Web - dummies

Bien que phpMyAdmin et d'autres outils d'hébergement Web Pour gérer les bases de données, il est possible que vous ayez besoin de quelque chose de plus puissant. MySQL Workbench est une bonne source dans cette instance. MySQL Workbench est un outil de conception et d'administration de base de données gratuit créé par Oracle qui réunit deux produits: MySQL Query Browser et MySQL ...

Le choix des éditeurs

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Sur un cercle - c'est-à-dire texte suivant l'extérieur d'un cercle ou ovale - est un élément de conception commun dans les mises en page. C'est vraiment facile à faire dans QuarkXPress, mais ce n'est pas du tout évident comment. Procédez comme suit: Obtenez l'outil Ovale de la palette Outils et dessinez ...

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

Deux types d'échanges de bitcoins sont utilisés : peer-to-peer et régulier. D'une part, il y a les échanges de bitcoins réguliers, qui utilisent un carnet de commandes pour faire correspondre les ordres d'achat et de vente entre les personnes. Cependant, ni l'acheteur ni le vendeur n'ont la moindre idée de l'identité de l'autre partie, ce qui permet à tous les utilisateurs ...

L'interface d'application QuarkXPress - les nuls

L'interface d'application QuarkXPress - les nuls

Les palettes visibles à gauche, à droite et en bas de QuarkXPress sont flottantes - vous pouvez les faire glisser n'importe où qui vous convient. Contrairement aux palettes, les menus de la barre de menu sont collés: vous devez toujours passer la souris à la barre de menu pour y accéder. Cependant, ...

Le choix des éditeurs

Sept erreurs d'optimisation de moteur de recherche - nuls

Sept erreurs d'optimisation de moteur de recherche - nuls

Lorsque vous essayez d'obtenir votre site Web, c'est facile de faire des erreurs d'optimisation de moteur de recherche. Voici quelques-unes des erreurs de référencement les plus courantes. Vous ne connaissez pas vos mots-clés C'est également un problème majeur: la grande majorité des sites sont créés sans que les propriétaires ou les développeurs du site ne sachent vraiment ce que sont les mots-clés ...

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Vous avez probablement vu "soumission "Services annoncés pour le référencement, peut-être sous la forme de spam dans votre boîte de réception, offrant de soumettre votre site Web à des centaines de moteurs de recherche, encore et encore. Dans la plupart des cas, ces services de soumission sont une perte totale de temps et d'argent. Voici comment obtenir votre site Web dans les moteurs de recherche. You ...

Six mythes À propos de Search Engine Optimization - mannequins

Six mythes À propos de Search Engine Optimization - mannequins

Il existe une grande confusion dans le monde des moteurs de recherche. beaucoup de mythes. Voici quelques-uns des mythes communément crus qui peuvent nuire à vos positions de moteur de recherche. Tout est une question de métabalises et de soumissions. C'est le mythe le plus répandu et le plus préjudiciable de tous, tenu par de nombreux concepteurs et développeurs Web. ...