¡Espero que alguien me pueda ayudar con un problema por el que me estoy metiendo de cabeza en este momento!Detección de gestos de deslizamiento en UITableViewCell dentro de UIScrollView
Dada la siguiente vista de jerarquía
Quiero ser capaz de detectar gestos banda magnética en mi costumbre UITableViewCell.
He subclase la UIScrollView y tienen un hitTest: withEvent: método que comprueba si estoy tocando la célula tableview (o su contenido) o no, en cuyo caso puse la siguiente vista de desplazamiento propiedades:
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView* result = [super hitTest:point withEvent:event];
if ([result.superview isKindOfClass:[UITableViewCell class]] || [result.superview tag] == SUBVIEW_TAG)
{
self.canCancelContentTouches = NO;
self.delaysContentTouches = YES;
} else {
self.canCancelContentTouches = YES;
self.delaysContentTouches = NO;
}
return result;
}
también han puesto en marcha:
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
if (view.tag == SUBVIEW_TAG || [[view superview] isKindOfClass:[UITableViewCell class]])
return NO;
return YES;
}
y estoy volviendo NO en caso de que el punto de vista de haber sido afectado es la célula vista de tabla.
Todos estos métodos se llaman y realizan sus acciones como se esperaba, pero todavía no puedo detener el UIScrollView de "acaparar" el gesto de deslizar.
Lo interesante es que si incluyo el UIView que contiene la tabla vista y la celda en ambos métodos (el que tiene SUBVIEW_TAG) funciona perfectamente así que supongo que debe ser algo relacionado con el hecho de que UITableView hereda de UIScrollView.
Mi objetivo principal es poder deslizar sobre la celda para revelar más opciones para la celda. Un deslizamiento horizontal en cualquier otro lugar en esa vista sería capturado por la vista de desplazamiento y desplazar el contenido horizontalmente según su comportamiento normal.
¡Cualquier idea sería muy apreciada!
Gracias! Rog
no es suficiente para añadir un reconocedor de trazos hasta la UITableViewCell? – teriiehina
¿Alguna vez resolvió esto? Si es así, ¿te importaría compartir tu solución? Usted ha descrito el problema muy bien y con gran detalle: ¡una respuesta similar sería fantástica! – iOSProgrammingIsFun
sí, una solución para eso sería increíble – Pasta