Итак, у меня есть UICollectionView и пользовательская ячейка, и все это отображается и отлично работает. Я регистрирую класс в viewDidLoad:
myCollectionView = [[UICollectionView alloc] initWithFrame:collectionViewFrame collectionViewLayout:layout];
[myCollectionView setDataSource:self];
[myCollectionView setDelegate:self];
[myCollectionView setBackgroundColor:[UIColor myColor]];
[myCollectionView registerClass:[SBCustomCell class] forCellWithReuseIdentifier:@"Cell"];
В моем методе cellForItemAtIndexPath я удаляю ячейку из очереди, устанавливаю ее свойства и возвращаю ее:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *identifier = @"Cell";
SBCustomCell *cell= [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
[cell setName: "My Name"];
cell.image = [UIImage imageNamed:@"lol.png"];
cell.score = 100.0;
cell.backgroundColor=[UIColor whiteColor];
return cell;
}
Все это прекрасно работает и отображается в пользовательском интерфейсе. Моя проблема заключается в том, что когда я устанавливаю распознаватель жестов в collectionView, когда я долго нажимаю на определенную ячейку, я хочу иметь доступ к ее свойствам. Я пытаюсь сделать это так:
-(void)handleLongPress:(UILongPressGestureRecognizer *)longPressRecognizer {
CGPoint locationPoint = [longPressRecognizer locationInView:myCollectionView];
if (longPressRecognizer.state == UIGestureRecognizerStateBegan) {
NSIndexPath *indexPathOfMovingCell = [myCollectionView indexPathForItemAtPoint:locationPoint];
SBCustomCell *cell= [myCollectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPathOfMovingCell];
NSLog(@"%@",cell.name);
Когда я пытаюсь получить доступ к любому из свойств моей пользовательской ячейки, оно (ноль) в консоли. Почему это? Что я делаю неправильно?