Я попытался создать подкласс UICollectionViewCell и загрузить из файла пера:
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"DatasetCell" owner:self options:nil];
if ([arrayOfViews count] < 1) {
return nil;
}
if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
return nil;
}
self = [arrayOfViews objectAtIndex:0];
UIView *view = [UIView new];
view.frame = self.frame;
view.backgroundColor = [UIColor orangeColor];
self.selectedBackgroundView = view;
}
return self;
}
Я столкнулся с проблемой, когда выбрана ячейка, cell.selected
не устанавливается. Это всегда NO
, что приводит к проблеме отмены выбора ячеек.
Как мне справиться с переводом ячейки в выбранное состояние?
РЕДАКТИРОВАТЬ:
Первоначально я загружал пользовательский UICollectionViewCell как класс:
[collectionView registerClass:[DatasetCell class] forCellWithReuseIdentifier:@"dataCell"];
Переключился на загрузку пера:
[collectionView registerNib:[UINib nibWithNibName:@"DatasetCell" bundle:nil] forCellWithReuseIdentifier:@"nibCell"];
У меня такая же проблема выбора/отмены выбора в обоих направлениях.
self
перед назначениемview.frame = self.frame
— это выглядит подозрительно. - person Martin R   schedule 23.03.2013registerNib:forCellWithReuseIdentifier:
иdequeueReusableCellWithReuseIdentifier:forIndexPath:
в контроллере представления коллекции, пользовательская ячейка загружается непосредственно из файла NIB. - person Martin R   schedule 23.03.2013awakeFromNib
для внесения изменений. - person Martin R   schedule 23.03.2013