Я создал небольшой «центр уведомлений» в виде таблицы. Но почему-то образ повторяется, а так быть не должно.
Я не могу понять причину этого самостоятельно, поэтому я прошу вас, ребята, о помощи.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let listPath = list[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "ListCell") as! HistoryCell
cell.setCell(list: listPath)
print(cell.note.text!)
//THIS ONE
if cell.note.text!.isEmpty == false
{
cell.noteImg.isHidden = false
}
return cell
}
Это часть кода, который у меня есть. Итак, позвольте мне объяснить, как это на самом деле работает.
Каждый раз, когда пользователь добавляет данные в КОНКРЕТНОЕ текстовое поле, они должны добавляться в «заметки» в Firestore.
Я выбираю все из Firestore, чтобы вставить данные в этот UITableView, и ЕСЛИ «заметки» не пусты. Мое изображение должно быть видно.
Результат, который я получаю сейчас: Он будет добавляться повторно, даже если значение равно нулю.
Итак, как вы можете видеть на картинке. Первый (1) правильный. (Тот, что в 12:55) а второго НЕ должно быть, оно просто добавляется случайным образом.
Я действительно надеюсь, что вы понимаете, было не так просто сделать это кратким и организованным.
Редактировать:
func setCell(list: listTxt){
DogName.text = list.dog
Person.text = list.person
Action.text = list.action
Date.text = list.date
Time.text = list.time
timer.text = list.timer
kilometer.text = list.kilometers
documentID.text = list.documentID
latitude = list.latitude
longitude = list.longitude
note.text = list.note
noteImg.image = list.noteImg
}
@iMHiteshSurani Ну вот





Я уверен, но, согласно моим знаниям и опыту, приведенный ниже код вызывает неожиданный вывод.
cell.note.text!.isEmpty == false
UITableView заполняет данные reusingUITableViewCell. Вот почему вы получаете неожиданный результат.
Просто замените метод cellForRowAt моим кодом. Надеюсь, это сработает.
Код:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
let listPath = list[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "ListCell") as! HistoryCell
cell.setCell(list: listPath)
if listPath.note.isEmpty == false{
cell.noteImg.isHidden = false
}else{
cell.noteImg.isHidden = true
}
return cell
}
Returns a reusable table-view cell object for the specified reuse identifier and adds it to the table.
Ссылка: dequeueReusableCell
@Putte LOL ... Все дело в опыте. В любом случае, вы можете сослаться на него developer.apple.com/documentation/uikit/uitableview/…. Если вы действительно хотите понять точную проблему.
пожалуйста, опубликуйте содержимое метода setCell