将 UILabel 添加到自定义 UICollectionViewCell 不会出现在 cellForItemAtIndexPath 中
Posted
技术标签:
【中文标题】将 UILabel 添加到自定义 UICollectionViewCell 不会出现在 cellForItemAtIndexPath 中【英文标题】:Add UILabel to Custom UICollectionViewCell doesn't appear in cellForItemAtIndexPath 【发布时间】:2014-11-04 05:28:42 【问题描述】:我是 UICollectionView 的新手。我正在尝试将两个 UILabel 添加到我的自定义 UICollectionViewCell
中,如下所示。
@interface PassCell : UICollectionViewCell
@property (nonatomic) IBOutlet UILabel *titleLabel;
@property (nonatomic) IBOutlet UIButton *infoButton;
@property (nonatomic) IBOutlet UIButton *doneButton;
@property (nonatomic) IBOutlet UILabel *headerTitle;
我已经在Storyboard
中与UILabel
建立了联系。
但是,当我在 CellforITemAtIndexPath
中设置 headerTitle 时, headerTitle UILabel
不会出现。只有titleLabel可以设置值。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
PassCell *cell = (PassCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"pass" forIndexPath:indexPath];
cell.titleLabel.shadowColor = [UIColor blackColor];
cell.titleLabel.textColor = [UIColor whiteColor];
cell.titleLabel.shadowOffset = CGSizeMake(0, 1);
cell.titleLabel.text = @"Test";
cell.headerTitle.text // That doesn't appear.
return cell;
我的代码有什么问题?
【问题讨论】:
试试 [cell.contentview addsubview:titlelabel]; 我在 Storyboard 中添加了 UILabel。我还与 IBOutLet 建立了联系。但没有出现在 cellForItemAtIndexPath 中。 在 cellforRow 中以编程方式创建 uilabel。它确实有效。 给该标签一些标签值并在此处使用该标签 标签本身会出现吗?在情节提要中给它一个背景颜色以查看。可能是因为不适当的限制,它不在屏幕上。 【参考方案1】:您必须在 cellForRow 方法之前以编程方式(在 viewDidLoad 中)注册您的 CustomCell
[self.collectionView registerClass:[PassCell class] forCellWithReuseIdentifier:@"pass"];
我不太确定它是如何在 StoryBoards 中完成的,但以编程方式执行它并没有错。
【讨论】:
这是不正确的。如果您在情节提要中制作单元格,则不应注册该类。仅当您完全在代码中制作单元格时才注册该课程。【参考方案2】:只需将storyBoard中的自定义类设置为collectionView Cell
【讨论】:
以上是关于将 UILabel 添加到自定义 UICollectionViewCell 不会出现在 cellForItemAtIndexPath 中的主要内容,如果未能解决你的问题,请参考以下文章
无法将 UILabel 添加到 UICollectionViewCell