touchForView в hitTest - PullRequest
       32

touchForView в hitTest

1 голос
/ 13 января 2010

У меня есть простой UIView, используемый как контейнер. Если я напишу этот код:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

    UIView *hitView = [super hitTest:point withEvent:event];

    NSSet *sTouches = [event touchesForView:self];

    NSLog(@"Touches %d", [sTouches count] );

    return self;
}

не работает! Я хотел бы получить количество касаний в сообщении hitTest (), прежде чем touchchesBegan ()! Возможно ли это?

У меня есть эта иерархия:

UIView 
  +---> UIScrollView 

При касании моего UIView ( однократного нажатия ) контейнер перемещается. Когда я дважды касаюсь (два пальца) моего UIView, ребенок UIScrollView не работает для Увеличение (например). Поэтому я думаю, чтобы поймать штрихи номер.

Если сенсорный номер равен единице, hitTest в моем UIView контейнере возвращает "self". Иначе, если число касания больше одного (== 2), hitTest возвращает указатель "scrollview".

Другими словами, я бы хотел перехватить событие двумя пальцами в сообщении / событии hitTest ().

1 Ответ

1 голос
/ 13 января 2010

hitTest используется платформой для определения, к какому виду наносится удар и, следовательно, к какому виду отправлять сообщения touchesBegan / touchesMoved / touchesEnded / touchesCancelled В момент вызова hitTest вы не можете сказать.

Может быть, вы могли бы объяснить, что вы пытаетесь достичь, потому что это не похоже на правильный способ сделать это.

...