0

我在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

我不知道为什么没有打印出“行单元格”。

有什么提示或建议吗?谢谢你。

4

3 回答 3

0

尝试添加

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

在 viewDidLoad 的末尾。

通常你需要告诉你的 collectionView 使用什么 Cells/Views。

于 2013-05-10T08:53:00.447 回答
0

终于我可以让它工作了!

您必须设置 PSCollectionView 实例的框架。

于 2013-05-10T09:49:14.963 回答
0

这是因为你有错字,不是ViewDidLoad()viewDidLoad(),所以你ViewDidLoad()通常不会被调用。因此,您无法正确设置委托和数据源。

于 2013-05-10T07:54:02.087 回答