2013-05-10 41 views
0

我跟着PSCollectionView的用法GithubPSCollectionView的代表不会启动

这是我的代码:

- (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

您是否在.h文件中添加了以下数据源 - ? – 2013-05-10 06:55:43

+0

我已将这些文件添加到.h文件中: 2013-05-10 07:00:21

+0

您是否链接过.xib文件? – 2013-05-10 07:03:08

回答

0

最后我可以让它成功!

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

0

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

+0

对不起,我的错字不在我的代码中。 - (NSInteger)numberOfRowsInCollectionView:(PSCollectionView *)collectionView和 - (CGFloat)collectionView:(PSCollectionView *)collectionView heightForRowAtIndex:(NSInteger)索引被调用。 – 2013-05-10 08:14:36

0

尝试增加

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

在您的viewDidLoad中结束。

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

+0

在这种情况下,self.collectionView是PSCollectionView而不是UICollectionView。它没有registerClass:forCellWithReuseIdentifier方法。 – 2013-05-10 09:01:35

+0

哦,我以为你的意思是PSTCollectionView。我的错。 – muffe 2013-05-10 09:08:42