1

我遇到的问题是我想显示世界地图。我希望用户能够点击一个特定的国家。我知道我可以使我的 UIImages(国家的图片)成为 UIButtons 的图像,但这在我的情况下不起作用,因为即使 UIButton 是自定义按钮,它也是矩形的。由于地图上的国家不是矩形的,因此按钮会重叠,然后当您尝试单击一个国家时,您最终会单击另一个国家。识别用户点击然后确定他们打算点击哪个图像的最佳方法是什么?

编辑:我忘了提及这一点,但如果我能够获得用户点击的坐标,有没有办法检查点击的像素是否是我的 UIImage 中的空白/透明像素?

4

2 回答 2

0

您可以将 a 添加UITapGestureRecognizer到您的UIImageView中,这将用户点击图像和点击本身的坐标时返回。从坐标中,您可以确定用户正在单击哪个国家/地区。

于 2013-01-27T14:39:13.200 回答
0

您需要的是像素完美(或接近像素完美)的触摸检测。

Erica Sadun 发布了一些代码,解释了一种方法。

简而言之,您定义自己的UIView派生类并覆盖 pointInside:withEvent:` 方法。在那里,您读取与传递给方法的点相关联的图像像素的 alpha 值,并根据其值决定它是否属于图像。

于 2013-01-27T14:45:39.120 回答