Воспроизведение изображений в виде таблиц при прокрутке с использованием пользовательского табличного представления

У меня есть Tableview, и я использую ячейку customTableview для отображения ячейки

в ячейке у меня есть 5 кнопок (кнопки рейтинга), когда я нажимаю на определенную кнопку, изображение кнопки должно изменить его работу, но когда я прокручиваю табличное представление снова, они меняются на обычные кнопки рейтинга, для ясности см. следующие изображения

Это изображение перед прокруткой и не нажатие кнопки на кнопке

Это изображение перед прокруткой и не нажатие кнопки на кнопке

после нажатия на кнопки рейтинга изображение меняется следующим образом:

введите описание изображения здесь

но при прокрутке ячеек снова меняется на первое изображение

пожалуйста, помогите мне

Код:

- (UITableViewCell )tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; dataCell = (DataCel)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (dataCell==nil) { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DataCel" owner:self options:nil]; dataCell = [nib objectAtIndex:0]; } return dataCell; } 

  • Табличное представление ящика: увольнение, потянув вниз
  • Расширение UITableViewCell
  • iOS autolayout - перемещение представления, расположенного внутри tableviewcell, в центр экрана
  • iOS: Как создать пользовательский заголовок для таблицы?
  • Изменение названия кнопки «Назад» при нажатии UIViewController на UITableViewController
  • Вкладка заголовка раздела UITableView отсутствует
  • Всегда показывать из первого индекса таблицы?
  • UITextView в UITableViewCell обеспечивает плавное автоматическое изменение размера и скрывает клавиатуру на iPad, но работает на iPhone
  • 5 Solutions collect form web for “Воспроизведение изображений в виде таблиц при прокрутке с использованием пользовательского табличного представления”

    вы должны сохранить изображение кнопок и

     - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

    вставьте код, чтобы он обновлялся для ex:

      static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { //create your cell here if it was not created cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; [cell.textLabel setFont:[UIFont boldSystemFontOfSize:13]]; [cell.textLabel setTextColor:[UIColor darkGrayColor]]; [cell.detailTextLabel setFont:[UIFont boldSystemFontOfSize:11]]; [cell.detailTextLabel setTextColor:[UIColor lightGrayColor]]; cell.detailTextLabel.numberOfLines = 2; } NSArray *array = [imageArray objectAtIndex:[indexPath row]]; if([[array objectAtIndex:3] isEqual:@"rate3"]) { //set the code for the rating 3 } else { //insert another rate depending on your object } 

    Это связано с тем, что каждый раз, когда вы UITableView , он обновляет свои значения из предоставленных вами данных! Таким образом, значение не сохраняется. Чтобы это не происходило при каждом прокрутке базы данных, вы можете использовать эту

     static NSString *cellIdentifier = @"Identifier"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if(cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil]; } for(id obj in cell.contentView.subviews) { if([obj isKindOfClass:[UIImageView class]] || [obj isKindOfClass:[UILabel class]]) { [obj removeFromSuperview]; } } 

    Это не позволит перекрывать значения.

    При прокрутке ячейки воссоздаются, поэтому вам нужно сохранить выбранные значения в отдельном массиве и установить его в методе cellForRowAtIndexPath

    Это происходит потому, что каждый раз, когда вы прокручиваете представление таблицы, он снова создает ячейку tableview. поэтому вы можете использовать массив для повторного использования.

      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellId = @"cellId"; UITableViewCell *cell = [categoriesTableview dequeueReusableCellWithIdentifier:cellId]; if (cell==nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId]; } for (UIView *subview in [cell.contentView subviews]) { [subview removeFromSuperview]; } // ui goes here return cell } 
    Interesting Posts

    Как переместить курсор UITextView в TOUCHED LOCATION?

    Используйте ссылки раскадровки, сохраняя значки и текст для контроллера панели вкладок

    Общий доступ к Facebook Graph API

    Сертификат APNS не отображается при создании профиля подготовки

    Узнав, когда кто-то приобрел ваше приложение

    Индикатор раскрытия не вызывает сеанс, в то время как раскрытие информации

    получить AM / PM от установленного пользователем времени на iOS

    UIKit: сбой?

    Отключение вертикального перемещения UIAttachmnetBehavior в UICollectionView

    почему я получаю команду с кодом выхода ENOENT при добавлении ios в кордове?

    Самый простой способ настроить пользовательский интерфейс для всех размеров iPhone с помощью xib

    Удалить указанный файл из каталога документов

    Как я могу использовать библиотеку PoDoFo для аннотирования PDF-файлов на iOS?

    UITextView – addSubview – Autolayout

    Быстрое правильное использование геттеров и сеттеров

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.