Animações irregulares de deleteRowsAtIndexPaths do UITableView: withRowAnimation:

Resumo: No modo de edição, estou excluindo linhas em uma exibição de tabela usando um controle de edição personalizado, em vez do sinal de menos vermelho padrão e do botão de confirmação de exclusão. Marque uma linha ou várias linhas e, em seguida, toque no botão Excluir na barra de ferramentas. É semelhante ao comportamento visto no aplicativo Mail. Veja a imagem abaixo.

Problema: As animações produzidas por chamadas paradeleteRowsAtIndexPaths:withRowAnimation: são irregulares. Por exemplo, eis o que acontece quando uso a animação da linha Inferior (ou seja,UITableViewRowAnimationBottom) para excluir a linha marcada (Assunto nº 7) na captura de tela:

Assunto # 8 desliza por baixo e por trás do Assunto nº 7Assunto # 8 está brevemente escondido atrás do Assunto # 7Assunto # 8 substitui o assunto # 7

Isso está ocorrendo no simulador e em um dispositivo. O tipo de animação Automático (ou seja,UITableViewRowAnimationAutomatic) produz o mesmo comportamento irregular ao excluir o Assunto # 7 acima.

O tipo de animação Top funciona conforme o esperado no simulador, mas produz animações inconsistentes e dissonantes em um dispositivo.

A animação do tipo Fade é a única animação que funciona como esperado no simulador e em um dispositivo.

Detalhes:

Estou segmentando o iOS 7 e usando o storyboard, o layout automático puro e os Core Data.

Aqui está o método de ação em que eu apago as linhas:

- (void)deleteButtonTapped:(UIBarButton *)sender
{
    // update table view's data
    [self.listOfItems removeObjectsAtIndexes:self.indexSetOfTickedRows];

    // create index paths for ticked rows
    NSMutableArray *indexPaths = [[NSMutableArray alloc] init];

    [self.indexSetOfTickedRows enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
        [indexPaths addObject:[NSIndexPath indexPathForRow:idx inSection:0]];
    }];

    [self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationBottom];

    // update Core Data and UI...
}

O que eu tentei:

Substituições da subclasse da célula da tabelalayoutSubviews. No entanto, as animações irregulares persistem mesmo quando eu comentolayoutSubviews.

Também removi o controle de edição personalizável das células da tabela e, em seguida, codifiquei a exclusão de uma linha específica no método de ação. As animações irregulares persistiram.

Como sugerido por outros, tentei chamardeleteRowsAtIndexPaths:withRowAnimation: entre as chamadas parabeginUpdates eendUpdates. Isso não resolve o problema.

Alguma sugestão sobre o que fazer a seguir, ou as melhores suposições sobre o motivo de eu estar vendo essas animações irregulares?

Atualização (iOS 7.1):

O problema permanece após a segmentação do iOS 7.1. Continuará a depender da animação de desvanecimento.

questionAnswers(3)

yourAnswerToTheQuestion