Обновление ячейки uitableview изменяет последующие ячейки в том же индексе

#ios #xcode #uitableview #parse-platform

#iOS #xcode #uitableview #разбор-платформа

Вопрос:

Я относительно новичок в objective c, так что это может быть глупый вопрос. Я использую parse для поиска пользователей, которых может добавить пользователь. По сути, когда пользователь выполняет поиск имен пользователей, табличное представление заполняется именами пользователей, которых пользователь может добавить в друзья. В каждой ячейке должна быть кнопка uibutton, изображение которой является знаком плюс, но если у пользователя есть человек в списке друзей, он должен иметь зеленую галочку.

Моя проблема в том, что когда кнопка tableviewcell имеет зеленую галочку, все последующие ячейки в той же позиции в tableview также имеют зеленые галочки. Любая помощь приветствуется!

(searchresults — это массив PFUsers)

Это часть моего метода cell for row:

 UIButton *addButton = (UIButton *)[cell viewWithTag:3];

[addButton setTag:indexPath.row];
[addButton setImage:[UIImage imageNamed:@"plus sign blue.png"] forState:UIControlStateNormal];
[addButton setEnabled:YES];

if ([[[PFUser currentUser] objectForKey:@"friends"] containsObject:[[searchResults objectAtIndex:indexPath.row] objectForKey:@"username"]]) {
    [addButton setImage:[UIImage imageNamed:@"green check mark.png"] forState:UIControlStateNormal];
    [addButton setEnabled:NO];
}
  

Спасибо!

Комментарии:

1. Что именно вы имеете в виду «все последующие ячейки в той же позиции»? Вы используете разделенный вид или что-то в этом роде?

2. Я просто использую один uitableview, но если я буду искать букву «a», и появятся два пользователя, а в ячейке первой строки будет изменено изображение зеленой галочки, если я буду искать «m» и появятся три пользователя, в первой строке этого результата также будет изменено изображение зеленой галочки, даже если этого пользователя нет в моем списке друзей. Спасибо за быстрый ответ!

3. Точка останова через ваше приложение — попадает ли она в ваш блок if для зеленых флажков, когда их не должно быть? Если это не так, то, вероятно, это из-за dequeueCell.

4. Я согласен с LyricalPanda. Если это так, возможно, создайте новый тип пользовательской ячейки для обработки первого индекса.

5. Спасибо за помощь, ребята! Я отлажу и посмотрю, что я могу выяснить!