Я пытаюсь вставить несколько строк в пустой UITableView за один шаг, используя insertRowsAtIndexPaths. (Я знаю, что это звучит не так уж и полезно, но это упрощенная версия того, что мне действительно нужно делать.)
Проблема, с которой я сталкиваюсь, заключается в том, что после выполнения вызова insertRowsAtIndexPaths я получаю вызовы cellForRowAtIndexPath для каждой вставленной строки, а не только для видимых.
Это не похоже на правду. И для меня это почти бесполезно, если он делает это.
Единственный немного странный другой артефакт, который я вижу, заключается в том, что когда я делаю это, он на самом деле, кажется, оживляет ряды на месте. Это не withRowAnimation, так как для него установлено значение none. Но, похоже, здесь происходит какая-то концепция анимации более высокого уровня. У меня была идея, что, когда он анимировал ряды на месте, он подумал, что ему нужны ячейки для большего количества / всех рядов, пока они не будут вытеснены с экрана. Но я не могу отключить эту анимацию без использования reloadData, которого я бы предпочел избежать.
Обычно у меня есть набор данных, который меняется за кулисами. Я могу тщательно пройтись и сконструировать изменения, чтобы сгенерировать данные для вызовов вставки / удаления / перезагрузки. Но я не могу ограничить это тем, что отображается на экране, поскольку оно не соответствует поставщику данных.
Я полагаю, я что-то упускаю ... есть идеи?
(Я делаю это в паре beginUpdates / endUpdates, но, похоже, это не имеет значения.)