indexPathForRowAtPoint devuelve nil solo para la primera celda en una vista uitable

tengo unUIButton dentro de una costumbreUITableViewCell que elimina la celda cuando se presiona el botón. Para obtener el indexPath de la celda en la que está el botón, estoy llamandoindexPathForRowAtPoint: en un método llamado cuando se presiona el botón de la siguiente manera:

-(void)buttonPressed:(UIButton *)sender{
    CGPoint btnPosition = [sender convertPoint:CGPointZero toView:self.tableView];
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:btnPosition];

    if (indexPath != nil)
    {
    //remove the cell from the tableview. 
    }
}

Esto funciona bien si presiono el botón en cualquier celda, excepto la primera celda, y también cuando solo hay una celda en la tabla. Sin embargo, si hay varias celdas y presiono el botón en la primera celda, se activa la presión del botón y se encuentra la posición btn, pero[self.tableView indexPathForRowAtPoint:btnPosition]; devolucionesnil.

Por ejemplo, si hay tres celdas, cada una con un botón:

Presiono el primer botón de la celda:Se llama buttonPressed pero indexPath es nulo, por lo que no sucede nada.Presiono el botón de la tercera celda:Se llama a buttonPressed y la celda se elimina como se esperaba.Presiono la primera celda de nuevo:igual que antes, se presionó buttonPressed pero indexPath es nulo.Presiono el botón de la segunda celda:Se llama a buttonPressed y la celda se elimina como se esperaba.Presiono el primer botón de la celda:Esta vez, se llama buttonPressed, indexPath no es nulo y la celda se elimina como se esperaba.

He comprobado que tableView no es nulo, como sugiere una publicación relacionada, pero diferente. También he confirmado que el puntobtnPosition se establece en el mismo valor(x=260, y=44.009995) tanto cuando[self.tableView indexPathForRowAtPoint:btnPosition] == nil Y cuando[self.tableView indexPathForRowAtPoint:btnPosition] != nil.

Entonces, aparte de preguntar si alguien tiene alguna idea sobre lo que podría estar sucediendo aquí, mi pregunta es:

¿En qué circunstancias podría pasar el mismo CGPoint a[self.tableView indexPathForRowAtPoint:btnPosition] devolver un diferente (o nulo)indexPath?

Agradecería ayuda con cualquier idea sobre dónde podría buscar para rastrear esto, o para escuchar si alguien ha encontrado un problema similar.

Algunas notas adicionales que pueden ser útiles (disculpe si hago una pregunta sobre faux-pas. Estaré encantado de recibir sus comentarios al respecto también :)

Esta tableView es parte de unUITableViewController que está incrustado en unUINavigationController

El TableView tiene 3 secciones, 2 de las cuales están ocultas a la vista (0 filas, sin pie de página, sin encabezado) mientras presento la sección con las filas de celda de botón como se describe.

Estoy ajustando la ubicación de los botones durante la presentación cambiando programáticamente sus restricciones horizontales.

Las alturas de micustomUITableViewCell, tableViewRows yUIButton son cada uno igual a 60.0f

Respuestas a la pregunta(5)

Su respuesta a la pregunta