我在Github上遵循了PSCollectionView的用法。
这是我的代码:
- (void)viewDidLoad
{
self.collectionView = [[PSCollectionView alloc] init];
self.collectionView.collectionViewDataSource = self;
self.collectionView.collectionViewDelegate = self;
self.collectionView.numColsPortrait = 2;
[self.view addSubview:self.collectionView];
[self.collectionView reloadData]; // If i don't call this my console will be empty.
}
- (NSInteger)numberOfRowsInCollectionView:(PSCollectionView *)collectionView
{
NSLog(@"num rows");
return 2;
}
- (PSCollectionViewCell *)collectionView:(PSCollectionView *)collectionView cellForRowAtIndex:(NSInteger)index
{
NSLog(@"cell for row");
return nil;
}
- (CGFloat)collectionView:(PSCollectionView *)collectionView heightForRowAtIndex:(NSInteger)index
{
NSLog(@"height for row");
return 0.0;
}
我的控制台是空的。但是当我调用[collectionView reloadData]时,结果如下:
num rows
height for row
height for row
num rows
我不知道为什么“行的单元格”没有打印出来。
任何提示或建议?谢谢。
答案 0 :(得分:0)
这是因为你有拼写错误,它不是ViewDidLoad()
viewDidLoad()
,所以你的ViewDidLoad()
通常永远不会被调用。因此,您无法正确设置委托和数据源。
答案 1 :(得分:0)
尝试添加
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
在viewDidLoad的末尾。
通常你需要告诉你的集合查看要使用的单元格/视图。
答案 2 :(得分:0)
最后我可以使它有效!
您必须设置PSCollectionView实例的框架。