uitableviewcell source number example data ios uitableview ios5 ios4 uiscrollview

ios - source - Deslizar para eliminar en una UITableView que está embebida en un UIScrollView



uitableviewcell swift 3 (4)

Si, no me equivoco, los toques son consumidos por la vista de desplazamiento y la edición de la tabla no está ocurriendo porque la tabla no está recibiendo los toques. Esto puede resolverse subclasificando el UIScrollView para poder tocar los toques al siguiente respondedor también. Así que es solo cuestión de sobreescribir los toques: comenzó, se movió y terminó. Actualizaré la respuesta más tarde hoy con el código necesario ya que estoy en el camino ahora. ¡Aclamaciones!

EDITAR:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self.nextResponder touchesBegan:touches withEvent:event]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { if(!self.dragging) { [self.nextResponder touchesMoved:touches withEvent:event]; } } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [self.nextResponder touchesEnded:touches withEvent:event]; }

Simplemente cree una clase que herede de UIScrollView y en la implementación suelte este código. Esto hará que scrollView no se trague los toques, sino que los pase. Obviamente, al crear su scrollView use la clase que acaba de crear en lugar de UIScrollView . Perdón por el retraso. Espero que esto ayude.

¡Aclamaciones!

He encontrado un problema igual que UIScrollview enable delete row by swipe
Es un tableView y otra vista funcionan como subViews de un scrollView, y no puedo habilitar "deslizar para eliminar" hasta que establezca la propiedad scrollEnable del scrollView en NO , pero trae otro problema: no puedo deslizarme entre tableView y otra vista
¿Hay otras formas además de establecer la propiedad scrollEnable para habilitar "deslizar para eliminar"?
De lo contrario, ¿cuándo debería establecer self.scrollEnable = NO , y cuándo debería establecer self.scrollEnable = YES para que "deslizar para eliminar" y "deslizar entre vistas" funcionen bien?

Gracias


He usado con éxito

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

en una subclase UIScrollView que contiene la vista de tabla para habilitar un UISwipeGestureRecognizer que resida en la vista de tabla para que se active en lugar de ser absorbido por los reconocedores de gestos de la vista de desplazamiento "principal".


La respuesta de @ THOR está bien, pero si su UITableView está en UIScrollView , probablemente también tenga otra UIView allí. Cuando se desplaza hacia arriba en la vista de tableview , accidentalmente se desliza hacia la "otra vista".

Esto evitará que se deslice y le permitirá deslizar para eliminar.

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { if (gestureRecognizer.state != 0) { return YES; } else { return NO; }

}


Necesita usar una subclase personalizada de UIScrollView . Debería funcionar con vistas de tabla en vistas de desplazamiento horizontal:

@interface MyCoolScrollView : UIScrollView @end @implementation MyCoolScrollView // Allows inner UITableView swipe-to-delete gesture - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(nonnull UIGestureRecognizer *)otherGestureRecognizer { return [otherGestureRecognizer.view.superview isKindOfClass:[UITableView class]]; } @end