Как создать строки с чередующимися цветами для UITableView на iPhone?

я бы имел альтернативные 2 цвета строк, например, первый черный, второй белый, третий черный и т. д. и т. д. …

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; cell = ((MainCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]); if (cell==nil) { NSArray *topLevelObjects=[[NSBundle mainBundle] loadNibNamed:@"MainCell" owner:self options:nil]; for (id currentObject in topLevelObjects){ if ([currentObject isKindOfClass:[UITableViewCell class]]){ if ((indexPath.row % 2)==0) { [cell.contentView setBackgroundColor:[UIColor purpleColor]]; }else{ [cell.contentView setBackgroundColor:[UIColor whiteColor]]; } cell = (MainCell *) currentObject; break; } } }else { AsyncImageView* oldImage = (AsyncImageView*) [cell.contentView viewWithTag:999]; [oldImage removeFromSuperview]; }return cell; 

Проблема в том, что, когда я делаю быстрый прокрутки, фон ячеек становится как последний 2-элементный черный, первый 2-элементный белый или что-то в этом роде, но если я прокручиваю медленные работы, отлично. Я думаю, что проблема заключается в кеше многократного использования.

Есть идеи?

ТИА

  • Как получить данные от firebase в порядке убывания стоимости?
  • Swift - проблема ограничений в расширяемом TableViewCell
  • UITableViewCell drawRect нижняя граница исчезает на insertRow
  • Представление контроллера просмотра с помощью кнопки в UITableViewCell программно (Swift)
  • UIImageView в UITableViewCell не анимируется, когда анимированный UIImage назначается дважды
  • iOS - Обнаруживать UITableViewCell, который перемещается из видимого вида?
  • IOS 8 UITableView самонастраивающиеся ячейки прыгают / сдвигаются визуально при нажатии на новый контроллер просмотра
  • установить динамическую высоту таблицы и ограничить до некоторой степени быстрое 3?
  • 2 Solutions collect form web for “Как создать строки с чередующимися цветами для UITableView на iPhone?”

    Ячейки перерабатываются (это то, что вы делаете, когда вы их деактивируете и проверяете, является ли оно нулем). Поэтому вместо того, чтобы устанавливать цвет фона при создании ячейки, установите его когда-нибудь. Так:

     if( !cell ) { // create the cell and stuff } if( [indexPath row] % 2) [cell setBackgroundColor:[UIColor whiteColor]]; else [cell setBackgroundColor:[UIColor purpleColor]]; 

    Я полагаю, что происходит, когда вы удаляете повторно используемую ячейку, вы не делаете этого в определенном порядке. Как это было бы, когда вы медленно прокручиваетесь, ячейки становятся доступными по очереди, и вам по очереди удаляют вас. Когда вы быстро прокручиваете, порядок становится неопределенным, как и порядок, в котором они выгружены. Я считаю, что именно поэтому (в значительной степени) яблоко разработало API UITableView для удаления по идентификатору – чтобы вы могли легко использовать различные типы ячеек, например, с разными цветами. Поэтому я рекомендую изменить код, чтобы каждый цвет ячеек имел свой собственный идентификатор. (Кроме того, если возможно, вы можете напрямую подключить этот источник данных таблицы к ячейке или сохранить его в ivar после его загрузки один раз, а затем скопировать, а не циклически перемещаться по объектам высокого уровня)

    Interesting Posts

    Ошибка приложения при загрузке файла> 256 МБ на iPad

    Несколько CBPeripheral для одного устройства

    Система смешанного языка

    UICollectionViewCell скрывается случайным образом

    Заголовок навигации не отображается в режиме просмотра с помощью контроллера представления таблиц, но работает «назад»

    Тестирование покупок In-App для многоязычных

    iOS: Push Notifications перестали работать

    UILongPressGestureRecognizer получает доступ к нажатой кнопке

    Открыть растровый просмотр вручную

    Создание новой раскадровки в XCode и ее основной (черный экран в симуляторе)

    Исключение NSInvalidArgument – случайные объекты Получение didEnterBackground

    Найти делегата в быстром массиве делегатов

    Результат DFT с использованием vDSP от Swift от реального значения входа (реализация Surge)

    UITextView – Вставить действие вставляет пустую строку на iOS 11

    iOS: сортировка файлов в папке в соответствии с порядком массива

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