2014-10-09 78 views
0

我知道这是一个真正的“宏观”问题,但我不知道如何开始。iOS:交互式UIImageView

我有一个图像(.png),其中包含大量的矩形(这是一个事件地图)。用户可以放大/缩小图像。 我想为地图添加一些交互。当用户触摸矩形时,我想识别它是哪个矩形,并显示带有名称的标签。

我知道如何获得X,Y,但是计算矩形区域的问题以及用户缩放图像时,我丢失了原始X/Y。

对不起,不好的问题,希望有人能帮助我。

我的地图它通过这种方式加载:

UIImage *image = [UIImage imageNamed:@"event-map.png"]; 
CGSize imageSize = image.size; 
self.mapImage.frame = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height); 
self.mapImage.image = image; 
self.scrollView.contentSize = imageSize; 
self.scrollView.zoomScale = 0.29; 
+0

嗨Lucks,你说得对“宏观”:-)所以你可以计算出已经点击过的表格图片中的哪个像素,但那又如何?就你所透露的,你没有办法将它转换成表格的身份?我认为你将需要访问这些信息。你可以用'plist'文件描述表格,然后为每个表格设置一个'UIView',而不是图像。然后,当这些被窃听时,你可以检测到这一点。 – Benjohn 2014-10-09 22:24:50

+0

嗨@Benjohn谢谢你的回答。你有任何教程或链接参考来开发这个? – 2014-10-09 22:40:12

回答

0

在您的矩形图,你可以使用:

[self.window convertPoint:myPoint toView:self] 

这会贵点转换成你的视野空间。一旦出现,你可以计算出你是否基于视图中的矩形边界与转换点之间的矩形。

如果您不知道图像中矩形的边界,但它们都是非常特定的像素颜色,则可以使用获取图像的数据并将命中像素的颜色与预期颜色进行比较。

+0

我有一个包含很多矩形的图像。我怎样才能使用你的代码? – 2014-10-09 22:03:00

+0

我添加了一部分加载地图的代码 – 2014-10-09 22:03:57