Неправильные поставки при планировании nsiamgeview над NSScrollview?

StackOverflow https://stackoverflow.com/questions/19853440

Вопрос

У меня есть NSSccrollview, который имеет большой обзор Image. Подумайте об этом. Теперь я должен нарисовать небольшое изображение (красный указатель) над картой мира в заданных (x, y) точках. Проблема в том, что когда я нарисую изображение, оно наносится в ту область.

    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];

Я ввел (0,0) как x, y, чтобы проверить, нарисовано ли он на начале координат. Он рисует где -то в середине экрана.

РЕДАКТИРОВАТЬ: Это нарисовано в начале Scrollview. Как перевести эти точки в точки большого изображения?

Это было полезно?

Решение

Добавьте свое изображение в качестве подвеса в свой WorldMapimage (большой вид изображения). Это переведет точки изображения в соответствии с изображением карты мира.

 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)

Другие советы

С информацией, которую вы дали, трудно сказать, но вы можете попробовать использовать NSView метод

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

Так что предполагает, что ваша карта мира - это подвига на вашем Scrollview, может быть ...

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

Который вернет кадр в точечной справочной системе представления WorldMap.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top