Question

J'ai un NSSCROLLVIEW qui a une grande vue ImageView à l'intérieur. J'essaie de tracer un ImageView de manière programmatique sur ImageView à l'intérieur du NSSCrollView. Pensez-y comme ceci. J'ai un WorldMap (NSimageView) à l'intérieur d'un NSSCrollView. L'utilisateur sélectionne un pays dans la liste déroulante et j'obtiens les points (x, y) pour ce pays dans le WorldMap (NSimageView). Maintenant, je dois dessiner une petite image (un pointeur rouge) sur le WorldMap aux points donnés (x, y). Le problème est que lorsque je dessine l'image, il est tracé dans la mauvaise zone.

    self.pimg = [[NSImageView alloc] initWithFrame:NSMakeRect (0, 0, 30, 30)];
    [self.pimg setImage: image];
//self.pimg is the pointing image to be drawn over the worldmap
    [self.pimg setImageFrameStyle:NSImageFrameNone];
    [self.pimg setImageScaling:NSOnState];
//
    [self.scrollView.contentView addSubview:self.pimg];

Je suis entré (0,0) comme x, y pour vérifier s'il est dessiné sur l'origine. Il est dessiné quelque part au milieu de l'écran.

ÉDITER: Il est dessiné à l'origine du ScrollView.Comment dois-je traduire ces points aux points de la grande image?

Était-ce utile?

La solution

Ajoutez votre image comme sous-vue à votre WorldMapImage (grande vue d'image). Cela traduira les points d'image selon l'image de votre carte du monde.

 self.pimg = [[NSImageView alloc] initWithFrame:NSMakeRect (0, 0, 30, 30)];
 [self.pimg setImage: image];
//self.pimg is the pointing image to be drawn over the worldmap
  [self.pimg setImageFrameStyle:NSImageFrameNone];
  [self.pimg setImageScaling:NSOnState];

  //Updated line of code
  [self.largeImageView addSubview:self.pimg]; //Add subview to the largeimageview(world map)

Autres conseils

Avec les informations que vous avez donné, il est difficile à dire, mais vous pouvez essayer d'utiliser le NSView méthode

- (NSRect)convertRect:(NSRect)aRect toView:(NSView *)aView

Donc, en supposant que votre WorldMap est une sous-vue sur votre ScrollView, peut-être ...

[scrollview convertRect:self.pimg.frame toView:worldmap]

Qui renverra un cadre dans le système de référence ponctuel de la vue WorldMap.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top