Я использую UITableView со статическими ячейками.
Если я использую reloadData, чем все в порядке.
Если я попробую reloadRowsAtIndexPaths, он скрывает строку. Строка появляется, если я перетаскиваю таблицуView вверх (когда ячейка обновляется).
Ответ 1
У меня была та же проблема, кажется, ошибка. Я экспериментировал с некоторыми, и проблема не возникает, когда я устанавливаю параметр анимации UITableViewRowAnimationNone. Некоторые другие интересные вещи случаются, когда вы также устанавливаете эту опцию в UITableViewRowAnimationTop.
Ответ 2
Если ваши ячейки таблицы статичны (т.е. вы используете один и тот же объект ячейки, чтобы заменить тот, который отображается в данный момент), то, что вы видите, является артефактом переходной анимации.
Подумайте об этом так. Допустим, вы установили UITableViewAnimationOptionFade. Когда ячейка должна быть заменена, ячейка, которую нужно заменить (которая в этом случае является одним и тем же объектом), добавляет к ней добавленную анимацию. Затем в ячейку, которая заменяется (опять же, все тот же объект), добавлена анимация постепенного уменьшения. В конце, ячейка на самом деле там, но она невидима, потому что анимация затухания сделала объект ячейки невидимым.
В нестатистическом представлении таблицы, в котором заменяющая ячейка является другим объектом, чем ячейка, подлежащая замене, это не проблема, так как анимации добавляются к двум различным объектам.