我有一个NSSCrollView,其中有一个大图像视图。我正在尝试通过NSSCrollview内部的ImageView以编程为图像视图。想一想。我在NSSCrollView内有一个Worldmap(NsimageView)。用户从下拉列表中选择一个国家,我在Worldmap(nsimageview)中获得了该国家的(x,y)点。现在,我必须在给定的(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];

我以x,y的形式输入(0,0),以检查它是否在原点上绘制。

编辑: 它在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

因此,假设您的Worldmap是您的ScrollView的一个子视图,也许...

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

它将在世界图视图的点参考系统中返回框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top