subView в UICollectionViewCell отображается неправильно при прокрутке UICollectionView

Я UICollectionViewCell пользовательский UICollectionViewCell и добавляю subView в contentView:

BooksCell.h

 @interface BooksCell : UICollectionViewCell @property (strong, nonatomic) UIImageView *certifyImageView; @end 

BooksCell.m

 - (id)initWithFrame:(CGRect)frame { self= [super initWithFrame:frame]; if(self){ _coverImageView = [[UIImageView alloc] initWithFrame:CGRectMake(15, 15, 88, 117)]; _coverImageView.userInteractionEnabled = YES; [self.contentView addSubview:_coverImageView]; UIImage *certifyImage = [UIImage imageNamed:@"13-6.png"]; _certifyImageView = [[UIImageView alloc] initWithFrame:CGRectMake(17.5, _coverImageView.frame.size.height-3, certifyImage.size.width, certifyImage.size.height)]; _certifyImageView.image = certifyImage; _certifyImageView.hidden = YES; } return self; } 

ViewController

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ BooksCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BooksCell" forIndexPath:indexPath]; cell.coverImageView.image = [UIImage imageNamed:@"13-5.png"]; // **Here I want some cell display certifyImageView and some not.** if(indexPath.row%2==0){ cell.certifyImageView.hidden = NO; } return cell; } 

Я добавляю collectionView как subView в Viewcontroller и правильно устанавливаю его, теперь коллекцияView перемещает coverImageView и certifyImageView в обычном режиме, но когда я просматриваю collectionView, certifyImageView перемещается в неправильную ячейку, я предполагаю, что это может быть вызвано Reuse Cell и как его подобрать?

One Solution collect form web for “subView в UICollectionViewCell отображается неправильно при прокрутке UICollectionView”

Я думаю, потому что он повторно использует ячейку, которая уже установила certifyImageView.hidden в NO, поэтому вам нужно вернуть ее в YES. Возможно, попробуйте это

 if(indexPath.row%2==0){ cell.certifyImageView.hidden = NO; } else{ cell.certifyImageView.hidden = YES; } 

Таким образом вы убедитесь, что certifyImageView будет скрытым, если это то, что вы хотите.

  • IOS 7 CollectionViewFlowLayout 3D-перевод (например, новый Safari Tabviewer)
  • Как удалить элемент из UICollectionView с помощью indexpath.row
  • Ошибка установки текста в ячейке просмотра коллекции
  • Добавить границу в пользовательский CollectionView
  • UILabel с дескриптором жесты Tap не работает
  • Ранее выбранные UICollectionViewCells не выбраны после того, как выбранная ячейка не выбрана
  • Задание / переопределение заполнения в UICollectionView между ячейками
  • Как программно изменить размер UICollectionViewCell в Swift?
  • Как определить, когда пользовательский UICollectionViewCell составляет 100% на экране
  • Странные исчезающие предметы при свитках
  • Быстрая прокрутка UICollectionView отображает неправильные изображения в ячейке, когда новые элементы добавляются асинхронно
  • Interesting Posts

    Использование Simple Ping в быстром (iOS)

    Ошибка getway Payumoney возникает в ios

    Альтернатива глобальным переменным в приложении делегата

    Изменение поля поля поиска UISearchBar

    Обтекание текста в UITextView вокруг UIImage БЕЗ CoreText

    MonoTouch.Foundation.MonoTouchException выбрано исключение Objective-C. Имя: NSInternalInconsistencyException

    Преобразование NSString в uint8_t

    Как использовать Magical Record для создания и обновления объектов и сохранения их без использования contextForCurrentThread

    Метод делегата UICollectionView cellForItemAtIndexPath: indexPath не вызывается из sizeForItemAtIndexPath

    Предотвратить переход на безопасное сафари iOS в режиме ожидания / автоматического блокирования / спящего режима?

    Ошибка iOS: библиотека не загружена mremap_encrypted

    Клавиатура iOS 8 – проблема с нажатием UITextField вверх, когда была показана клавиатура

    Совместимость биткодов XCode 8

    ALAssetsLibraryWriteVideoCompletionBlock возвращает неопределенные значения

    Невозможно программно скрыть UIButton, созданный с помощью IB

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