Jestem nowy na iPhone SDK. Teraz programuję z CALayers, które bardzo lubię - nie tak drogie jak UIViews, i dużo mniej kodu niż sprite'y OpenGL ES.Jak uzyskać zdarzenie dotykowe na CALayerze?
Mam to pytanie: Czy można uzyskać zdarzenie dotykowe na CALayerze? rozumiem, jak uzyskać dotykowy zdarzenia na UIView z
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
ale nie mogę znaleźć nigdzie o tym, jak uzyskać dotykowy zdarzenia na obiekcie CALayer, na przykład, pomarańczowy kwadrat pływające w przestrzeni 3D. Nie chcę uwierzyć, że jestem jedyną osobą, która jest tym ciekawa.
Doceniam każdą pomoc!
Uwagi dla przejrzystości: 1. Pętla for jest nieco niezręczna, ponieważ zweryfikowano, że istnieje tylko jeden dotyk. Zwykle robi się to za pomocą wskaźnika [dotyka anyObject] lub [dotyka obiektu ObjectAtIndex: 0]. 2. Zamiast używać convertPoint:, po prostu prześlij "zero" do locationInView: w pierwszej kolejności. Daje to lokalizację dotyku w układzie współrzędnych okna, więc kolejna linia jest zbędna. – Rab
Wiem, że to dość stare pytanie. Ale tylko dla tych, którzy ciekawi. @Rab Zasadnie z prawej z wyjątkiem [dotyka obiektu ObjectAtIndex: 0] Zestaw NSset będący reprezentacją zestawu dotknięć nie ma selektora objectAtIndex. –
+1 Dobry punkt @EugeneProkoshev. Możliwe, że ktoś może umieścić zdarzenia dotykowe w NSArray, ale w tym przypadku po prostu mamy NSSet, który jest nieindeksowany. Dziękuję za wyjaśnienie. :) – Rab