2010-11-10 22 views
8

Quiero saber si hay una manera de restringir el tamaño o los movimientos de UIViews en GestureRecognizers.Restricciones de movimientos de UIGestureRecognizer

Claro que podría escribir mi propio código de restricción pero sabré si podemos establecer alguna propiedad o algo para tener algunos límites límite.

Por ejemplo, en UIPanGestureRecognizer quiero para restringir el movimiento de la vista agregado a PanGesture dentro de un CGRect en particular, por lo que ¿hay alguna manera de que pueda establecer que rect saltando así sucesivamente detección PanGesture si la vista se va fuera de mi marco de delimitación no lo permitirá.

+0

¿alguien? .......... – cocos2dbeginner

Respuesta

0

por lo que sé que tiene que escribir usted mismo.

Los gestos de tap le permiten establecer a cuántos grifos está respondiendo con cuántos dedos, pero la mayoría de ellos no proporcionan muchos ayudantes.

1

Creo que la forma más sencilla de lograr esto es crear una vista invisible en ese rect y agregarle el gesto. Ejemplo: Desea detectar el movimiento en la vista X dentro de rect {a, b, c, d}. Crea una UIView Y en el {a, b, c, d} rect. Establezca su color de fondo para borrar Color. Crea el reconocedor de gestos y agrégalo a la vista Y. En selector del gesto de hacer algo como esto:

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

Si necesita cambiar el rect en la que desea que el gesto que se activa, basta con mover la vista Y y listo!

EDIT:

También puede utilizar el delegado UIGestureRecognizer y devolver VERDADERO o FALSO en este método:

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

dependiendo de la posición de ese argumento táctil. De hecho, esta es la forma en que Apple sugiere en uno de sus videos de sesión WWDC. Y es mejor ya que no tiene que agregar otra vista y llenar la memoria.

Cuestiones relacionadas