Я могу быть не точным на 100%, но если вы поместите -touchesBegan:withEvent:
в свой контроллер представления (или его основной вид), то вы получите только те касания, которые не были обработаны некоторыми подпредставлениями в иерархии представления. Чтобы перехватить все касания, вы должны использовать подкласс UIView для представления вашего контроллера и переопределить в нем метод hitTest:withEvent:
:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
touchedView = [super hitTest:point withEvent:event];
NSSet* touches = [event allTouches];
// handle touches if you need
return touchedView;
}
Для получения дополнительной информации см. Доставка событий раздел в «Руководстве по обработке событий» для iOS