iPhone: erkennt zwei-finger-touch
Brauche ich, um zu erkennen, zwei-finger-touch-event. Wenn ich berühren Sie den Bildschirm mit zwei Fingern gleichzeitig auf, also alles ist ok. Nur mit diesen code:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[touches allObjects] objectAtIndex:0];
CGPoint point1 = [touch locationInView:self];
CGPoint point2 ;
NSLog(@"First: %f %f", point1.x, point1.y) ;
if ([[touches allObjects] count] > 1) {
UITouch *touch2 = [[touches allObjects] objectAtIndex:1];
point2 = [touch2 locationInView:self];
NSLog(@"Second: %f %f", point2.x, point2.y) ;
}
}
Aber dieser code nicht funktioniert, wenn ich halten Sie einen finger und berühren Sie dann den Bildschirm mit einem anderen finger. Wie implementieren Sie diese ? Ist es schwer ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie sicher, dass die UIView hat
multipleTouchEnabled=YES
, der Standardwert istNO
.Edit:ich sehe, was das problem ist. In touchesBegan:withEvent:, du bekommst nur das neue berührt. Sie nicht bekommen, alle aktiven berührt. Es ist sehr unwahrscheinlich, wenn überhaupt möglich, dass Sie mehr als eine Note zu beginnen zur gleichen Zeit. Um zu überprüfen, ist es mehr als eine aktive touch-int touchesBegan: versuchen Sie dies:
Was ist der wirkliche Gegenstand, der den Erhalt der Veranstaltung? Das Objekt kann erhalten Ihre touch-event, und nicht die Basis UIResponder.
Zum Beispiel, wenn Sie sich in einem UIScroolView dann können Sie sich in der sec-touch:
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;