让UITouch只在触摸某种颜色时执行任务

时间:2010-07-19 00:36:13

标签: cocoa-touch uiimageview uitouch

当我在UIImage视图中触摸某种颜色时,如何让UITouch识别并执行某项任务。

例如:

我有一张街道的照片。这条街有灰色的建筑和白色的道路。如果我触摸建筑物,我不希望发生任何事情,但如果我触摸一条白色的道路,我想要突出显示我触摸浅蓝色的部分。

1 个答案:

答案 0 :(得分:0)

  1. 捕捉图像上的触摸事件
  2. 使用触摸位置获取该位置的像素颜色。
  3. 确定颜色是代表道路还是建筑物。
  4. 获取完全触控坐标

    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
    {
        UITouch *touch = [touches anyObject];
        CGPoint touchPoint = [touch locationInView: imageView];
    
        // Here are your touch coordinates
        touchPoint.x
        touchPoint.y
    }
    

    在该位置获取像素颜色:code to get pixel color

    确定颜色是否代表Road。

    // 230 used as example, Experiment to find a good value
    if (red >230 && green >230 && blue >230)
    {
        // turn street blue
    }