Нужно ли обновлять данные Firebase каждый раз, когда я запускаю Cellforrow Method? - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть функция, которая называется RetrievePosts (), которая наблюдает за базой данных Firebase и получает значения для моей модели. Я запускаю это в viewdidload ().

My cellForRow обновляет информацию о ячейке на основе полученной информации. Довольно стандарт. Тем не менее, у меня есть кнопка в каждой пользовательской ячейке, которая включает / выключает в зависимости от того, нравится или не нравится нажатие кнопки, и это изменение состояния отслеживается в пользовательском классе ячеек и обновляется до firebase.

Проблема возникает при прокрутке таблицы назад и вперед, состояние кнопки возвращается к тому, которое установлено из исходных данных RetrievePost ().

Как мне решить эту проблему? ..

1 Ответ

0 голосов
/ 06 ноября 2018

Обычно это происходит, когда мы не добавляем «другое условие» для состояния. Например, если есть 10 объектов данных, а 5 видны. Когда мы прокручиваем назад и вперед, ячейка используется повторно. Теперь предположим, что вам понравилась только одна клетка. По мере прокрутки назад и вперед эта ячейка будет использоваться повторно для отображения другой модели данных, и, если вы не укажете «другое условие», есть вероятность, что состояние некоторой ячейки будет отображаться как понравившееся.

Суть вы можете получить из следующего кода

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCell(withIdentifier: "Identifier") as? CustomCell
    let postModel = postModelArray[indexPath.row]
    if postModel.isLiked {
        cell.likeImageView.image = UIImage(named: "Liked")
    } else {
        cell.likeImageView.image = UIImage(named: "NotLiked")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...