¿Cómo obtengo una vista de encabezado UITableView antes de las celdas de la tabla en la cadena de respuesta?

La documentación de UIView (para hitTest: withEvent 🙂 dice:

Los puntos que se encuentran fuera de los límites del receptor nunca se informan como aciertos, incluso si realmente se encuentran dentro de una de las subvistas del receptor. Esto puede ocurrir si la propiedad clipsToBounds de la vista actual está establecida en NO y la subvista afectada se extiende más allá de los límites de la vista.

La vista del encabezado de la tabla aparece encima de la primera celda y, cuando se desplaza hacia abajo, se mueve hacia arriba y fuera de la parte superior de la pantalla. Si tiene subvistas de la vista del encabezado de la tabla que está manipulando para pegarse en la parte superior de la vista de la tabla, es probable que estén fuera de los límites de la vista del encabezado de la tabla. (Probablemente no pensó que iba a encontrarse con un problema ya que clipsToBounds es NO por defecto).

En otras palabras, este no es un problema del orden de la cadena de respuesta; Este es un problema de la geometría de la vista. Sus vistas no reciben eventos táctiles porque la vista principal se ha desplazado fuera de la pantalla.

Reescribir el manejo táctil, incluso con reconocedores de gestos, es una muy mala idea. (A menos que tenga tiempo para manejar todos los casos límite y también la API de accesibilidad).

Debe dividir su contenido: la parte que se desplaza debe ser la vista del encabezado de la tabla, y la parte que debe adherirse a la parte superior de la tabla debe ser una vista de encabezado de sección personalizada.

Si algo necesita expandirse y cubrir toda la tabla, debe implementarse como una nueva vista (puede animar la transición para que parezca que la misma vista se está haciendo más grande).

Intentaría deshabilitar la selección en la vista de tabla y volver a implementar la selección usando un UIGestureRecognizer. Además, usaría el protocolo UIGestureRecognizerDelegate para bloquear condicionalmente el reconocedor si es necesario.