0

У меня есть UIViewController, содержащее уникальную CollectionView но вывод идет весь белыйUICollectionView не загружается КСН

В GridViewController.h

#import <UIKit/UIKit.h> 

@interface GridViewController : UIViewController <UICollectionViewDataSource, 
    UICollectionViewDelegate>{ 

    } 
@property (nonatomic, strong)UIImageView *imageHeader; 
@property (nonatomic, strong)UIButton * buttonHome; 
@property (nonatomic, strong)UILabel * labelTitle; 
@property (nonatomic, strong)UICollectionView * collectionView; 

//.... 
@end 

В GridViewController.m

- (void)viewDidLoad 
{ 
    //.... 
    [self.collectionView registerClass:[UICollectionView class] 
     forCellWithReuseIdentifier:@"Cell"]; 

     NSLog(@"%@", self.collectionView);//here (null), why? 
    self.collectionView.delegate=self; 
    self.collectionView.dataSource=self; 
    //... 
    } 

    - (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView 
{ 
     return 1; 
} 

- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection: 
(NSInteger)section; 
{ 
    return 32; 
} 



- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath: 
(NSIndexPath *)indexPath{ 

    NSString *kCellID = @"cellID"; 
    CollectionViewCellCustom *cell = [cv dequeueReusableCellWithReuseIdentifier:kCellID forIndexPath:indexPath]; 
    cell.imageView.backgroundColor =[UIColor greenColor]; 


    return cell; 
} 
+0

Вы используете xib? проверьте, что розетка подключена –

+0

У меня нет IBOutlet, я сделал все по коду –

+0

проверить мой ответ –

ответ

4

Я не видел ни одной розетки в вашем коде. Поэтому я предполагаю, что вы пытаетесь создать его программно. Для этого вы должны сделать

UICollectionViewFlowLayout *layout= [[UICollectionViewFlowLayout alloc]init]; 
self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout]; 
[self.view addSubView:self.collectionView]; 
[self.collectionView registerClass:[UICollectionViewCell class] 
     forCellWithReuseIdentifier:@"Cell"]; 
self.collectionView.delegate=self; 
self.collectionView.dataSource=self; 

В своем коде я вижу, что вы делаете registerClass:[UICollectionView class], что неправильно registerClass:[UICollectionViewCell class] прав.

Изменить

[self.collectionView registerClass:[UICollectionView class]forCellWithReuseIdentifier:@"Cell"]; 

в

[self.collectionView registerClass:[UICollectionViewCell class]forCellWithReuseIdentifier:@"Cell"]; 

Еще одна ошибка, которую вы используете другую идентификатор соты для регистрации и dequeing. сделайте его таким же. Зарегистрируйте ячейку с идентификатором Сотовый и попытайтесь выполнить deque с помощью cellID

+0

Теперь выход: *** Ошибка подтверждения в - [ UICollectionView _dequeueReusableViewOfKind: withIdentifier: forIndexPath:] –

+0

опубликовать ваш код cellForItem –

+0

Код написан выше –

1

Для примера кода вы можете обратиться this.

Надеюсь, это вам поможет.

Все самое лучшее !!!

+0

Но вы не регистрируете ячейку просмотра коллекции в своем коде ... – LightMan

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