Пусть UITouch выполняет задание только при касании определенного цвета. - PullRequest
2 голосов
/ 19 июля 2010

Как можно, чтобы UITouch распознавал и выполнял определенную задачу ТОЛЬКО при касании определенного цвета в представлении UIImage.

Например:

У меня есть изображение улицы.Улица имеет сероватые здания и белую дорогу.Если я касаюсь здания, я не хочу, чтобы что-то происходило, но если я касаюсь белой дороги, я хочу выделить ту часть, где я коснулся светло-голубого.

1 Ответ

0 голосов
/ 11 декабря 2011
  1. Захват событий касания на вашем изображении
  2. Используйте местоположение касания, чтобы получить цвет пикселя в этом месте.
  3. Определите, представляет ли цвет Дорога или Здание.

Получить точные координаты касания

- (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
}

Получить цвет пикселей в этом месте: код для получения цвета пикселей .

Решите, соответствует ли цвет дороге.

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