2013-02-03 3 views
-1

J'ai mon propre jpg et je veux faire quelque chose comme ça:Création « carte » de ma propre image

Déclarez les zones où cliquez après cette pop-up apparaîtra. Comment puis-je faire ceci? J'ai essayé avec la carte, mais je ne pense pas que ce soit correct.

+0

Je ne comprends pas tout à fait; qu'est-ce que vous essayez exactement de faire? Voulez-vous dire que vous voulez mettre des boîtes sur le jpg comme ceux sur YouTube? –

+0

Eh bien, vous avez besoin d'une liste de zones et de trouver la position actuelle du pointeur en leur sein. Ou vous découpez votre image complète en zones et un gestionnaire d'événement onclick pour chacun d'eux. –

+0

@TonyHopkinson C'est exactement ce que j'essaie de faire, seulement je ne sais pas comment. Quel chapitre de la documentation dois-je lire à propos des images de sélection ou de la sélection des zones d'une image? – migari

Répondre

1

Il y a plusieurs façons de vouloir accomplir mais vous ne fournissez pas assez de détails pour déterminer quelle approche est la plus appropriée. (par exemple, avez-vous besoin d'afficher graphiquement ces zones «point d'accès» avant ou après avoir cliqué sur ces zones, etc.). Pour adopter l'approche la plus élémentaire, définissez un tableau d'objets basés sur CGRect, puis, dans un événement tactile, testez si le point de contact se trouve dans l'un des renvois.

// many ways to define the rects 
    NSMutableArray* hotspots; //this would be a @property declared elsewhere 

// define 5 CGRects 
    for (int i = 0; i < 5; i++) { 
     NSValue *rectObj = [NSValue valueWithCGRect:CGRectMake(i * 10, 0, 44, 44)]; 
     [hotspots addObject:rectObj]; 
    } 

// et pour tester les résultats:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    // Detect touch anywhere 
    UITouch *touch = [touches anyObject]; 

    for (NSValue* rectObj in hotspots) { 
     if (CGRectContainsPoint([rectObj CGRectValue], point)){ 
      //this is a hit so do something 

      break; 
     } 
    } 
} 
Questions connexes