自定义 UICollectionViewCell 中的 UILabel 始终为空,无法更新文本
Posted
技术标签:
【中文标题】自定义 UICollectionViewCell 中的 UILabel 始终为空,无法更新文本【英文标题】:UILabel in custom UICollectionViewCell always null, can't update text 【发布时间】:2013-04-05 00:55:43 【问题描述】:我创建了一个对 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 始终为空。因此,我在模拟器中看到的是空的白框。我错过了什么?
【问题讨论】:
【参考方案1】:StoryBoard 中的UICollectionViewCell 不需要registerClass,只需在StoryBoard 中选择reuseidentifier 即可。删除这一行:
// [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];
并确保以正确的方式连接:
-将storyBoard中UICollectionViewCell的类类型选择为Cell
-将 UILabel 拖入 Cell 并挂接到 Cell.h
-键入重用标识符
【讨论】:
删除注册行并使用情节提要中的重用标识符修复了它。谢谢! 这行得通。有时情节提要中有太多的魔力。 抱歉 -Type 重用标识符是什么意思?我删除了第一行,但什么都看不到(做了其他步骤) @Signo 在你的故事板中输入它 是的,找到了 :) 现在我只需要了解为什么宽度和高度没有更新,我很好:P 谢谢!【参考方案2】:MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")
我从我的代码中删除了这一行,现在它可以正常工作了......
【讨论】:
以上是关于自定义 UICollectionViewCell 中的 UILabel 始终为空,无法更新文本的主要内容,如果未能解决你的问题,请参考以下文章
XCTest 与自定义 UICollectionViewCell
UICollectionViewCell 内带有 UITableView 的自定义单元格
从自定义 UICollectionViewCell 获取正确的按钮