Какой вызов метода после вставки ячейки в табличное представление - PullRequest
0 голосов
/ 16 февраля 2019

Меня немного смущает вставка ячейки в табличное представление.

Когда я вызываю tableView.insertRows(at: [indexPath], with: .left) tableView, не обновляется сразу после него, внутри вызываемой функции.Я думаю, что это вызывает некоторые соответствующие методы делегата и источника данных, но какие?

Кроме того, я видел, что некоторые парни вызывают insertRows с tableView.beginUpdates() и tableView.endUpdates().Зачем нам это делать, если обновление происходит без этих двух методов?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Будут вызваны методы источника данных Tableview. Чтобы начать серию вызовов методов, которые вставляют, удаляют или выбирают строки и разделы табличного представления, необходимо вызвать beginUpdates(), за которым следует endUpdates()

Документация Apple

0 голосов
/ 16 февраля 2019

numberOfRows && cellForRowAt вызываются, когда вы делаете вставку, вам нужно начинать и заканчивать обновления, чтобы предотвратить последующие вызовы numberOfRows в случае, если у вас есть тяжелые вызовы для вставки / удаления, чтобы избежать исключений, таких как число строк / разделов передобновление не равно после добавления / удаления

, теперь рекомендуется использовать

https://developer.apple.com/documentation/uikit/uitableview/2887515-performbatchupdates

внутри

https://developer.apple.com/documentation/uikit/uitableview/1614908-beginupdates

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...