Как установить UILabel в UICollectionViewCell
У меня есть приложение с UIViewController с UICollectionView IBOutlet в нем.
Ячейка в UICollectionView - это MyCustomCell, и этот метод устанавливает свой UILabel:
-(void)setCellLabel:(NSString *)value{
NSLog(@"settinglabel");
cellLabel.text = @"hardcode"; //added for testing purposes
}
Ячейка имеет тип свойства Class, идентифицирующий ее как MyCustomCell в раскадровке, а также идентификатор ее очереди. UIViewController принимает источники данных и протоколы делегатов. Выход IBOutlet UILabel соединен с раскадровкой CellLabel. Методы определены как:
- (void)viewDidLoad{
[super viewDidLoad];
self.restNames = @[@"Orange",@"Naranja",@"Narnia"];
[self.collectionView registerClass:[MyCustomCell class] forCellWithReuseIdentifier:@"MyCustomCellID"];
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
NSLog(@"%d",[self.restNames count]);
return [self.restNames count];
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
MyCustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
[cell setCellLabel:@"hi"];
NSLog(@"fitsname %@",[self.restNames objectAtIndex:indexPath.row]);
return cell;
}
Я получаю три ячейки в моем табличном виде, соответствующие 3 объектам в моем массиве. Массив просто содержит строковые объекты, которые я устанавливал напрямую с помощью objectAtIndexPath, но я решил установить его прямо в @ "hi", поскольку он не работал. Я даже изменил значение, используемое в методе setCellLabel, на жестко закодированное значение, и я продолжаю получать только строку «Метка» по умолчанию в каждой ячейке.
Почему cellLabel не настроен правильно?