Способ, которым я решил это, был не очень элегантным, но работал.
Проблема, как упоминал Джо, состоит в том, что мы повторно используем клетки, удаляя их из очереди. Это означает, что иногда мы используем ячейку, в которой уже установлены свойства, например, textLabel. В моем случае это было связано с различиями в структуре клеток. Это перекрывало изображение из одной ячейки над другой, у которого вообще не должно быть изображения.
Я обнаружил, что выявление проблемных частей и установка их на ноль в начале cellForRowAtIndex устранили проблему. Это эквивалентно чистке планшета перед использованием его.
Вот моя отредактированная версия:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell * cell = [self.tableView dequeueReusableCellWithIdentifier:bCellIdentifier];
cell.imageView.image = Nil;
cell.textLabel.text = Nil;
_nameField.text = @"";
...
// Setting the code with regards to the cells here
...
return cell;
}
Надеюсь, это поможет