indexPathForRowAtPoint retorna nulo apenas para a primeira célula em uma visualização uitabl

eu tenho umUIButton dentro de um costumeUITableViewCell que remove a célula quando o botão é pressionado. Para obter o indexPath da célula em que o botão está, estou chamandoindexPathForRowAtPoint: em um método chamado quando o botão é pressionado da seguinte maneira:

-(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. 
    }
}

Isso funciona bem se eu pressionar o botão em qualquer célula, exceto a primeira, e também quando, se houver APENAS uma célula na tabela. No entanto, se houver várias células e eu pressionar o botão na primeira célula, o pressionamento do botão será acionado e a btnPosition será encontrada, mas[self.tableView indexPathForRowAtPoint:btnPosition]; retornanil.

Por exemplo, se houver três células, cada uma com um botão:

Eu pressiono o primeiro botão da célula:buttonPressed é chamado, mas indexPath é nulo, então nada acontece.Eu pressiono o botão da terceira célula:buttonPressed é chamado e a célula é removida conforme o esperado.Eu pressiono a primeira célula novamente:igual a antes, buttonPressed chamado, mas indexPath é nulo.Eu pressiono o segundo botão da célula:buttonPressed é chamado e a célula é removida conforme o esperado.Eu pressiono o primeiro botão da célula:Dessa vez, buttonPressed é chamado, indexPath não é nulo e a célula é removida conforme o esperado.

Verifiquei que o tableView não é nulo, conforme sugerido por uma postagem relacionada, mas diferente. Eu também confirmei que o pontobtnPosition está definido com o mesmo valor(x=260, y=44.009995) ambos quando[self.tableView indexPathForRowAtPoint:btnPosition] == nil E quando[self.tableView indexPathForRowAtPoint:btnPosition] != nil.

Portanto, além de perguntar se alguém tem alguma idéia do que poderia estar acontecendo aqui, minha pergunta é:

Em que circunstâncias poderia passar o mesmo CGPoint para[self.tableView indexPathForRowAtPoint:btnPosition] retornar um diferente (ou nulo)indexPath?

Agradeço a ajuda com todas as idéias de onde posso procurar rastrear isso ou saber se alguém encontrou um problema semelhante.

Algumas notas adicionais que podem ser úteis (desculpe-me se eu fizer uma pergunta que faça faux-pas. Ficarei feliz em receber seus comentários sobre isso também :)

Este tableView faz parte de umUITableViewController que é incorporado em umUINavigationController

O tableView tem 3 seções, 2 das quais estão ocultas da visualização (0 linhas, sem rodapé, sem cabeçalho) enquanto eu estou apresentando a seção com as linhas da célula de botão, conforme descrito.

Estou ajustando a localização dos botões durante a apresentação alterando programaticamente suas restrições horizontais.

As alturas do meucustomUITableViewCell, tableViewRows eUIButton são cada um iguais a 60.0f