Удалить элемент ListView без перезагрузки в NativeScript, только для iOS

У меня есть ListView, и я хотел бы предоставить пользователям возможность удалять любой элемент в нем без перезагрузки. Итак, я сделал фрагмент кода, который установит удаленный элемент vislibility = "collapsed". Это прекрасно работает в Android, но не в iOS. Это оставит пробел, поскольку элемент будет удален. Только когда я прокручиваю полностью вниз или вверх и прокручиваю назад, пробел исчезает.

Поэтому я попробовал другой способ: получить собственный ListView iOS, который является UITableView. И есть функция deleteRowsAtIndexPaths, поэтому я сделал так:

myListView.ios.deleteRowsAtIndexPathsWithRowAnimation([NSIndexPath.indexPathForItemInSection(index, 1)], UITableViewRowAnimation.UITableViewRowAnimationLeft);

Однако появляется ошибка Assertion failure in -[UITableView _endCellAnimationsWithContext:]и я не знаю что делать дальше. На самом деле мне не нужна анимация или причудливая штука, я просто ожидаю, что она будет работать как Android. Заранее большое спасибо.


person Dean Le    schedule 08.07.2016    source источник


Ответы (1)


Небольшой код поможет понять вашу проблему... Но, на первый взгляд, я думаю, вам нужно обернуть deleteRowsAtIndexPaths при вызове методов beginUpdate и endUpdate. См. это.

person SHN    schedule 08.07.2016