Как бы вы обнаруживали касания только непрозрачных пикселей UIImageView
, эффективно?
Рассмотрим изображение, подобное приведенному ниже, отображаемое с помощью UIImageView
. Цель состоит в том, чтобы распознаватели жестов реагировали только тогда, когда прикосновение происходит в непрозрачной (черной в этом случае) области изображения.
Идеи
- Переопределить
hitTest:withEvent:
илиpointInside:withEvent:
, хотя этот подход может быть ужасно неэффективным, поскольку эти методы вызываются много раз во время события касания. - Проверка прозрачности одного пикселя может привести к неожиданным результатам, поскольку пальцы больше одного пикселя. Проверка круговой области пикселей вокруг точки попадания или попытка найти прозрачный путь к краю может работать лучше.
Bonus
- Было бы неплохо различать внешние и внутренние прозрачные пиксели изображения. В этом примере прозрачные пиксели внутри нуля также должны считаться действительными.
- Что произойдет, если изображение имеет преобразование?
- Можно ли ускорить обработку изображений?