我有UIViewController
,其中包含CollectionView
,但输出全部为白色
在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 :(得分: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"];
您使用不同的小区ID的另一个错误是注册和出列。使它一样。注册ID为单元格的单元格并尝试使用 cellID
进行双击答案 1 :(得分:1)