2012-09-14 27 views
6

He agregado dos reconocedores de gestos de barrido (deslizar hacia la izquierda y deslizar hacia la derecha) a mi UITableView. Después de eso, mi vista de tabla ha dejado de desplazarse. Al mismo tiempo, -(void)didSelectRowAtIndex funciona bien. ¿Cuál podría ser el problema?iphone - UIGestureRecognizer evita que UITableView se desplace en Xcode 4.5

Todo lo que hice fue arrastrar y soltar Reconocedores de gestos deslizar desde la biblioteca de objetos en mi UITableView.

Si los elimino, mi mesa comienza a desplazarse de nuevo.

UPD:

Esto sucede después de actualizar a Xcode 4.5. No hay tal problema en versiones anteriores de Xcode. Para evitar este comportamiento, agregue UIGestureRecognizers programáticamente, no en IB. propiedad

Respuesta

6

sólo trato código abajo puede esto ayudar .... escribir código abajo en viewDidLoad: método

UISwipeGestureRecognizer *swipeGestureObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideOpen_Clicked:)] autorelease];//yourSlideOpen_Clicked is method name where you doing something 
swipeGestureObjectImg.numberOfTouchesRequired = 1; 
swipeGestureObjectImg.direction = (UISwipeGestureRecognizerDirectionLeft); 
[yourView addGestureRecognizer:swipeGestureObjectImg]; 

UISwipeGestureRecognizer *swipeGestureRightObjectImg = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(yourSlideClose_Clicked:)] autorelease];//yourSlideClose_Clicked is method name where you doing something 
swipeGestureRightObjectImg.numberOfTouchesRequired = 1; 
swipeGestureRightObjectImg.direction = (UISwipeGestureRecognizerDirectionRight); 
[yourView addGestureRecognizer:swipeGestureRightObjectImg]; 

si aquí tableview es vista secundaria de la clase UIView luego use el código anterior, de lo contrario simplemente intente con "youtTableview" en lugar de "yourView"

espero que esto lo ayude ...

:)

+2

Sí, funcionó después de agregarlos programáticamente. Tal problema ocurre después actualizando a Xcode 4.5 – Oleg

+0

Puedo confirmar que funciona agregándolo programáticamente. – Leonardo

1

conjunto de cancelsTouchesInView gesto reconocedor = NO

+0

no ayuda .. – Oleg

+0

Sí, tiene razón, pero no ayuda en Xcode 4.5 (si lo agregó no programáticamente) :( – DanSkeel

1

Tuve el mismo problema: Solía ​​arrastrar mi TabGestureRecognizer directamente al guión gráfico en lugar de crearlos a través del código. Con iOS6 esto parece romper el desplazamiento.

Prefiero agregar vistas, gestos, etc. directamente en el guión gráfico en lugar de a través del código.

Todavía se puede hacer esto, pero con dos cambios:

1) poner en relación Outlet Colecciones

  • Haga clic con el GestureRecognizer que es visible en un plazo de muelle de la escena.
  • Borrar la sección Referencing Outlet Colecciones

2) Coloque la GestureRecognizer a la vista relacionada a través del código

  • Crear una salida para su GestureRecognizer
  • Agregue la línea siguiente en el método viewDidLoad :

    [self.tableView addGestureRecognizer:_tabGesture];

0

Me enfrenté al mismo problema y lo resolví vinculando el reconocedor de gestos a la vista en lugar de a la vista de tabla.

  1. Muestra el guión gráfico.
  2. Muestra el inspector de conexiones.
  3. Muestra el contorno del documento.
  4. Cree un nuevo enlace en "Hacer referencia a colecciones de salida" entre el reconocedor de gestos y el nodo de vista debajo del controlador de vista.

Saludos. Pedro.

Cuestiones relacionadas