Я надеюсь, что вы можете помочь, так как я немного застрял в том, где искать решение этой проблемы UITableView, которая у меня возникла:
Когда я вставляю новый элемент в верхней части раздела UITableView, используя следующий метод (см. Код ниже), все это прекрасно работает, за исключением этого сбоя: вставленная строка в верхней части раздела отображается, как и ожидалось, с закругленными углами вверху слева и справа. Проблема в том, что строки ниже не обновляются визуально, т.е. вторая строка / ячейка все еще имеет закругленные углы, тогда как теперь она должна быть в квадрате по верхним углам - , пожалуйста, смотрите этот скриншот для пояснения после анимации для вставить новую строку в верхней части второго раздела произошло. Смотрите углы ячеек, поскольку они не были обновлены.
// Amend the data source before updating the view to reflect the changes
[[self.playerData objectAtIndex: 0] removeObjectAtIndex: row];
[[self.playerData objectAtIndex: 1] insertObject:playerName atIndex:0];
// Amend the view to reflect changes
NSArray *deleteIndexPaths = [NSArray arrayWithObjects:
[NSIndexPath indexPathForRow:row inSection:0],
nil];
NSArray *insertIndexPaths = [NSArray arrayWithObjects:
[NSIndexPath indexPathForRow:0 inSection:1],
nil];
[self.playerTableView beginUpdates];
[self.playerTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation: UITableViewRowAnimationLeft];
[self.playerTableView deleteRowsAtIndexPaths:deleteIndexPaths withRowAnimation: UITableViewRowAnimationLeft];
[self.playerTableView endUpdates];
Конечно, если я только что отправил сообщение: [self.playerTableView reloadData]; вид будет отображаться правильно. Однако нам действительно нужно, чтобы эта процедура была анимированной, чтобы обеспечить приятное впечатление. Возможно, если бы было завершено делегированное событие по завершении анимации вставки, я мог бы обновить представление из источника данных, чтобы избавиться от сбоев, но я не нашел подобного хука.
Любая помощь будет принята с благодарностью.