2013-10-07 2 views
6

При использовании моего подкласса UICollectionViewLayoutcellForItemAtIndexPath: не вызывается (я проверил с использованием точек останова и вывода отладки). Это, как я использовать пользовательский макет:cellForItemAtIndexPath: не вызывается при использовании пользовательского подкласса UICollectionViewLayout

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 

     DMSGridLayout* gridLayout = [[DMSGridLayout alloc] init]; 

//  UICollectionViewFlowLayout* flow = [[UICollectionViewFlowLayout alloc] init]; 
//  [flow setItemSize:CGSizeMake(150, 150)]; 

     UICollectionView *collection = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:gridLayout]; 
     collection.delegate = self; 
     collection.dataSource = self; 
     self.collectionView = collection; 

     [self.view addSubview:self.collectionView]; 
     [self.collectionView registerClass:[DMSGridCell class] forCellWithReuseIdentifier:@"CollectionCell"]; 
    } 

Но когда я изменить код выше, чтобы использовать UICollectionViewFlowLayout вместо моего пользовательского подкласса cellForItemAtIndexPath: называется.

Может быть, какой-то код из моего подкласса подстандартного макета предотвращает вызов cellForItemAtIndexPath?

+0

Да, может. Вам нужно будет показать некоторые из них - если макет не возвращает какой-либо размер для вида коллекции, например, или любого размера для объектов макета, то ячейка никогда не будет создана. Внедрили ли вы все методы, описанные в документации? – jrturton

+0

Большое спасибо. Я испортил начало кадра ячейки ... он был вне видимой области. Поэтому было правильно, что 'cellForItemAtIndexPath' не вызывался. – flather

+0

Хорошо, я поставил свой комментарий в качестве ответа, чтобы вы могли закрыть это. – jrturton

ответ

5

Если макет не возвращает какой-либо размер для вида коллекции, например, или любого размера для объектов макета, то ячейка никогда не будет создана. Кроме того, кадры в объектах макета должны быть в пределах видимой области представления коллекции.

Смежные вопросы