自定义UICollectionViewCell中的UILabel始终为null,无法更新文本

时间:2013-04-05 00:55:43

标签: ios ios6 storyboard uilabel uicollectionviewcell

我为Apple集合视图示例项目创建了一个非常简单的集合视图。我在storyboard中的视图控制器中有一个集合视图,并在集合视图右上角的集合视图单元格内设置一个标签。我已经把它连接到我的自定义单元格中的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始终为null。因此,我在模拟器中看到的是空白框。我错过了什么?

2 个答案:

答案 0 :(得分:41)

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

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

确保正确连接:

- 在storyBoard到Cell

中选择UICollectionViewCell的类类型

-Drag UILabel进入Cell并连接到Cell.h

- 键入重用标识符

答案 1 :(得分:2)

MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")

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