2010-11-10 3 views
8

Ich möchte wissen, ob es eine Möglichkeit gibt, die Größe oder Bewegungen der UIViews in den GestureRecognizers einzuschränken.UIGestureRecognizer Bewegungseinschränkungen

Sicher, ich könnte meinen eigenen Restriktionscode schreiben, aber wana weiß, ob wir eine Eigenschaft oder etwas festlegen können, um bestimmte Grenzen zu haben.

Zum Beispiel in UIPanGestureRecognizer Ich mag die Bewegung des Blicks auf PanGesture innerhalb eines bestimmten CGRect hinzugefügt beschränken, so ist es eine Möglichkeit, so dass die Begrenzungs rect einstellen PanGesture auf Erfassen, wenn der Blick aus meinem Begrenzungsrahmen gehen wird es wird es nicht zulassen.

+0

jemand? .......... – cocos2dbeginner

Antwort

0

Soweit ich weiß, müssen Sie das selbst schreiben.

Tippen Sie auf Gesten können Sie einstellen, wie viele Taps Sie mit wie vielen Fingern reagieren, aber die meisten von ihnen bieten nicht viele Helfer.

1

Ich denke, der einfachste Weg, dies zu erreichen, ist eine unsichtbare Ansicht in diesem Rect zu erstellen und die Geste hinzuzufügen. Beispiel: Sie möchten die Bewegung in Ansicht X innerhalb des Rechtecks ​​{a, b, c, d} erkennen. Erstellen Sie eine UIView Y im {a, b, c, d} rect. Stellen Sie die Hintergrundfarbe auf clearColor ein. Erstellen Sie den Gestenerkenner und fügen Sie ihn der Y-Ansicht hinzu. In der Wähler Geste etwas tun, wie folgt aus:

- (void) selector:(UIPanGestureRecognizer *) gesture 
{ 
    UIView *viewX = [self.view viewWithTag:kTagViewX]; 
    //now you know that the gesture took place and you have access to your view 
} 

Wenn Sie das rect ändern müssen, in dem Sie die Geste aktiv sein wollen, nur um die Y-Ansicht und voila bewegen!

EDIT:

Sie können auch den UIGestureRecognizer Delegaten verwenden und WAHR oder FALSCH in dieser Methode zurück:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 

in Abhängigkeit von der Position dieser Berührung Argumente. Eigentlich ist das die Art, wie Apple in einem ihrer WWDC-Session-Videos vorschlägt. Und es ist besser, da Sie keine andere Ansicht hinzufügen und den Speicher auffüllen müssen.