现在有这样一个问题,有一个界面,界面是由很多图片组成的,有背景图(房屋),有人,有小狗等,当点到人物时,人会说话,当点到小狗时,小狗会叫,当点到背景图时有背景音乐,人物和小狗都是不规则图片(虽然图片是好多×好多,但是有些地方是透明的,所以视觉上是不规则的),当点到一个地方,这个地方其实是点到人物的uiimageview,但是在人物这张uimageview的透明的地方,而在界面上的视觉效果是点到背景图上,这时候就不是人说话了,而是背景音乐了,请问各位大侠这个怎么实现呢?

解决方案 »

  1.   

    我有两个思路供你参考:
    1.找到用户触摸屏幕位置所覆盖的所有图,然后计算出相对每张图内的触摸点像素位置,最后按照你画的先后顺序依次检查每张图触摸点像素的alpha值,看是不是透明的,最后找到符合你要求的那张图。
    2.给每张图生成一个轮廓一样的纯色图,别有任何的半透明,然后在判断触摸的时候把这些图按正常顺序画上,不画原图,最后取屏幕上触摸点的像素颜色,后画的透明颜色会把先画的覆盖,最后留下的颜色标识的就是你要的那张图,当然,如果你觉得画一次这个标记颜色图直接到屏幕上不专业的话,可以生成一个和屏幕一样大小的缓冲图,向这缓冲图上画,不显示,只做关键色判断逻辑用。