自定义 UICollectionViewCell 的 UILabel 为 nil
UILabel of custom UICollectionViewCell is nil
我尝试在故事板中制作自定义 UICollectionViewCell。我有 CustomCell.xib、CustomCell.h 和 CustomCell.m。在 .xib 中,Classname 被链接并且标识符被设置为 "cell"。 .xib 包含 1 个 UIImage 和 2 个 UILabel,它们都有 IBOutlets 到 .h class.
在我使用它的 ViewController 中,我有一个故事板文件,其中包含 VC,其中包含一个 UICollectionView,其中包含 1 个已更改为我的 "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;
}
此处当我调试并将鼠标保持在 "cell" 上方时,它显示 "titleLabel = nil" 和 "valueLabel = nil"。
为什么没有加载?
有趣的副作用:我在黑色背景上看到一些灰色矩形。所以有些东西在起作用。但是自定义 UILabel 不存在。
您已经定义了两次单元格,一次在 XIB 中,一次在 Storyboard 中。未使用 XIB 版本,因为您从未加载它并将其提供给集合视图。正如您在情节提要中命名的单元格所使用的那样。您的子类都在 XIB 中,因此您在 运行 应用程序中看到的结果是 Storyboard 中的空版本。
选择 1 个选项并坚持下去。如果您不打算在其他视图中使用该单元格,那么请使用故事板,如果您要使用 XIB 并加载并注册它。
我尝试在故事板中制作自定义 UICollectionViewCell。我有 CustomCell.xib、CustomCell.h 和 CustomCell.m。在 .xib 中,Classname 被链接并且标识符被设置为 "cell"。 .xib 包含 1 个 UIImage 和 2 个 UILabel,它们都有 IBOutlets 到 .h class.
在我使用它的 ViewController 中,我有一个故事板文件,其中包含 VC,其中包含一个 UICollectionView,其中包含 1 个已更改为我的 "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;
}
此处当我调试并将鼠标保持在 "cell" 上方时,它显示 "titleLabel = nil" 和 "valueLabel = nil"。
为什么没有加载?
有趣的副作用:我在黑色背景上看到一些灰色矩形。所以有些东西在起作用。但是自定义 UILabel 不存在。
您已经定义了两次单元格,一次在 XIB 中,一次在 Storyboard 中。未使用 XIB 版本,因为您从未加载它并将其提供给集合视图。正如您在情节提要中命名的单元格所使用的那样。您的子类都在 XIB 中,因此您在 运行 应用程序中看到的结果是 Storyboard 中的空版本。
选择 1 个选项并坚持下去。如果您不打算在其他视图中使用该单元格,那么请使用故事板,如果您要使用 XIB 并加载并注册它。