自定义UICollectionViewCell的UILabel为零

时间:2015-02-13 14:55:54

标签: objective-c uilabel uicollectionviewcell

我尝试在故事板中制作自定义UICollectionViewCell。我有CustomCell.xib,CustomCell.h和CustomCell.m。在.xib中,Classname被链接,标识符被设置为" cell"。 .xib包含1个UIImage和2个UILabel,它们都有.h类的IBOutlets。

在我使用它的ViewController中,我有一个Storyboard文件,其中包含一个包含UICollectionView的VC,其中包含1个UICollectionViewCell,它被更改为我的" customCell" class并且还获得了标识符" cell"。

VC是<UICollectionViewDataSource, UICollectionViewDelegate>,方法正在调用。

但是:

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    NSString *identifier = @"cell";

    CustomCell *cell = (CustomCell *)[collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

    cell.valueLabel.text = @"testtext";
    cell.valueLabel.textColor = [UIColor whiteColor];

    cell.titleLabel.text = @"TEST";
    cell.titleLabel.textColor = [UIColor whiteColor];

    cell.backgroundColor = [UIColor grayColor];

    return cell;
}

当我调试并将鼠标放在&#34; cell&#34;上面时,它显示&#34; titleLabel = nil&#34;和&#34; valueLabel = nil&#34;。

为什么没有加载?

有趣的副作用:我在黑色背景上看到一些灰色矩形。所以SOMETHING正在发挥作用。但是定制的UILabels并不存在。

1 个答案:

答案 0 :(得分:1)

您已将您的单元格定义了两次,一次在XIB中,一次在故事板中。不使用XIB版本,因为您从未加载它并将其提供给集合视图。正如您在故事板中命名的单元格是使用的单元格。您的子类都在XIB中,因此您在正在运行的应用程序中看到的结果是Storyboard中的空白版本。

选择1个选项并坚持下去。如果您不打算在其他视图中使用该单元格,那么请使用故事板,如果您随后使用XIB并加载并注册它。