PSCollectionView的委托不是火

时间:2013-05-10 06:49:35

标签: ios objective-c

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

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

任何提示或建议?谢谢。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试添加

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

在viewDidLoad的末尾。

通常你需要告诉你的集合查看要使用的单元格/视图。

答案 2 :(得分:0)

最后我可以使它有效!

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