2010-01-13 3 views
1

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

- (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(), прежде чем touchhesBegan()! Возможно ли это?

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

UIView 
    +---> UIScrollView 

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

Если номер прикосновения равен единице, hitTest на моем UIView контейнер возвращается «я». Else, если номер касания отлично подходит для одного (== 2), hitTest возвращает указатель «scrollview».

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

ответ

1

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

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

+0

Хорошо, у меня есть эта иерархия: UIView ---> UIScrollView Когда прикосновение моего UIView (Умывальник) контейнер перемещается. Когда я дважды касаюсь своего UIView, дочерний UIScrollView не работает для Zoom (например). Так что я думаю, чтобы поймать число прикосновений. Если номер касания равен единице, hitTest на моем контейнере UIView вернет «я». Else, если номер касания отлично подходит для одного (== 2), hitTest возвращает «scrollview». – Undolog