Сенсорных событий размножить, как это:
- UIViews присылают -hitTest: withEvent: рекурсивен до тех пор некоторые UIView не решит, что прикосновение находится внутри его границ а не внутри любого поднабора, поддерживающего взаимодействие с пользователем.
- UIWindow отправляет -touchesBegan: withEvent: и друзья UIView, возвращенные на шаге 1, игнорируя любую иерархию представлений.
Другими словами, -hitTest: withEvent: используется для определения целевой вид на ощупь, после чего целевая точка зрения получает все -touches ...: withEvent: сообщения. Если вам нужно перехватить жестом салфетки, который может начаться в UIButton, вам придется переопределить -hitTest: withEvent:, чтобы вернуть self.
Но есть проблема с этим подходом. Как только вы это сделаете, ваша кнопка перестанет работать, потому что она не получит -touches ...: withEvent: сообщений. Вам придется переадресовать касания в подпункты вручную, если вы не обнаружите жестом салфетки. Это серьезная боль в прикладе и не гарантируется вообще работа. Вот для чего предназначены UIGestureRecognizers.
Другой подход заключается в подклассе UIWindow и переопределении -sendEvent:, который может работать лучше в вашем случае.
В любом случае, обязательно прочитайте документацию Event Handling. Среди других страшных предупреждений он говорит:
Классы каркаса UIKit является не предназначен для приема штрихов, которые не связаны с ними; в программных условиях это означает, что объект объекта UITouch должен иметь ссылку на каркас объект для касания .
эта ссылка сейчас изменилась .. обновление plz :) –
GREAT ANSWER ..... THANKS ...... –