Создание ограничительной рамки для UIImageView - PullRequest
0 голосов
/ 14 марта 2011

Как создать ограничивающий прямоугольник для UIImageView, который не является CGRect?

Я бы хотел, чтобы в моем представлении были объекты, которые должны отображать изображения, а также обнаруживать коллизии.

Проблема в том, что я хотел бы, чтобы эти объекты были любой формы, а не помещали их в CGRect и обнаруживали столкновения в областях, которые находятся внутри рамки, но не являются фактическим изображением.

Как этого добиться?

1 Ответ

1 голос
/ 14 марта 2011

Это нетривиальная проблема.Но основы в том, что CGRect - это прямоугольник, и тест на попадание внутрь прямоугольника довольно легко понять.Тем не менее, вы говорите, как будто вы хотите более сложную форму.UIImageView отображает изображение.Он не имеет никакого представления о том, какую форму вы хотите использовать для теста на столкновение.Так что вам нужно будет это сказать.

Одна простая вещь, которую нужно сделать, это посмотреть на альфа / прозрачные значения отображаемого изображения, чтобы создать форму.Таким образом, для ответа на вопрос - точка, попадающая на изображение, мы выясняем расположение точки на изображении и возвращаем true, если альфа больше 0. Если вы сделаете это, вы можете создать любое изображение с прозрачным фоном, и код будет просторабота.

Если это не сработает для вас, вы также можете запустить тест на попадание в точку, и в этом посте многоугольник подробно расскажет об этом.

Как определить,2D точка находится внутри полигона?

...