¿Deshabilitar el paso de encabezado de sección flotante de UITableView?

Tengo un UITableView de estilo simple con vistas de encabezado de sección personalizado (pre-6.0, por lo que no UITableViewHeaderFooterView). Algunos pueden ser tocados y otros no. Cuando flotan en la parte superior de la vista de tabla sobre otras celdas, los toques pasan por la sección de encabezado a las celdas de vista de tabla a continuación. Debido a los requisitos de reutilización de esta vista en otra parte de la aplicación, la vista de encabezado de sección es una subclass de UITableViewCell. ¿Hay alguna forma de evitar que pase el tacto?

Si cambio la subclass de la vista de encabezado de sección a UIView en lugar de UITableViewCell, el problema desaparece. Sin embargo, esta solución no es posible por otros motivos. ¿Hay algo de comportamiento especial en UITableViewCell que puedo desactivar?

Solutions Collecting From Web of "¿Deshabilitar el paso de encabezado de sección flotante de UITableView?"

Eche un vistazo al - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event método de instancia de - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event aquí .

Puede anular este método en su subclass UIView y devolver la vista que desea responder al toque.

Usando quizás este tipo de enfoque:

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { id hitView = [super hitTest:point withEvent:event]; if (hitView == self) { return nil; } else { return hitView; } } 

Espero que esto ayude.

Simplemente active la interacción del usuario en false si tiene acceso a la vista del encabezado de sección

Tuve la misma situación. Terminé colocando un UIButton debajo de las otras cosas en mi celda de encabezado personalizada y convirtiéndolo en el tamaño de toda la celda y haciéndolo combinar.

Ahora atrapa los grifos y no hace nada, impidiendo el acceso directo a las celdas que se encuentran debajo. Espero que esto ayude.