16

我为 Apple 集合视图示例项目创建了一个非常简单的集合视图。我在情节提要的视图控制器中有一个集合视图,并在集合视图右上角的集合视图单元格内设置了一个标签。我已将其连接到自定义单元格中的 IBOutlet。以下是相关代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];
    ...
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (collectionView == self.collView) {
        Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];    
        cell.segmentTitle.text = @"some text";
        cell.backgroundColor = [UIColor whiteColor];
        return cell;
    }
    return nil;
}

我在零件后面放了一个断点segmentTitle.text,segmentTitle 始终为空。因此,我在模拟器中看到的是空的白框。我错过了什么?

4

2 回答 2

41

StoryBoard里面的UICollectionViewCell不需要registerClass,在StoryBoard里面选择reuseidentifier即可。删除这一行:

   // [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];

并确保您以正确的方式连接:

- 在storyBoard到Cell中选择UICollectionViewCell的类类型

- 将 UILabel 拖入 Cell 并连接到 Cell.h

- 键入重用标识符

于 2013-04-05T01:19:23.493 回答
2
MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")

我从我的代码中删除了这一行,现在它工作正常...... 

于 2014-11-25T14:22:05.180 回答