2010-11-10 10 views
8

Desidero sapere se esiste un modo per limitare le dimensioni o i movimenti di UIViews in GestureRecognizers.UIGestureRimascie restrizioni movimenti

Certo, potrei scrivere il mio codice di restrizione, ma wana so se possiamo impostare qualche proprietà o qualcosa per avere dei limiti.

Per esempio in UIPanGestureRecognizer voglio limitare i movimenti della vista aggiunto PanGesture all'interno di un particolare CGRect, quindi non v'è alcun modo per impostare tale delimitazione rect così via rilevamento PanGesture se la vista è andare fuori dal mio delimitazione telaio non lo permetterà.

+0

qualcuno? .......... – cocos2dbeginner

risposta

0

per quanto ne so, devi scriverlo tu stesso.

tap gestures consente di impostare il numero di tocchi a cui si risponde con il numero di dita, ma la maggior parte di esse non fornisce molti helper.

1

Penso che il modo più semplice per farlo sia quello di creare una vista invisibile in quel rettangolo e aggiungere il gesto ad essa. Esempio: Si desidera rilevare il movimento nella vista X all'interno del rect {a, b, c, d}. Creare un UIView Y in {a, b, c, d} rect. Imposta il suo colore di sfondo per cancellare Colore. Crea il riconoscitore di gesti e aggiungilo alla vista Y. Nel selettore del gesto fare qualcosa di simile:

- (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 
} 

Se è necessario cambiare il rect in cui si desidera che il gesto di attivo, basta spostare la vista Y e voilà!

EDIT:

È inoltre possibile utilizzare il delegato UIGestureRecognizer e restituire true o false in questo metodo:

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

a seconda della posizione di quel tocco argomento. In realtà questo è il modo in cui Apple suggerisce in uno dei loro video di sessione WWDC. Ed è meglio perché non devi aggiungere un'altra vista e riempire la memoria.

Problemi correlati