如何更改自定义 CollectionViewCell 的背景颜色?

Posted

技术标签:

【中文标题】如何更改自定义 CollectionViewCell 的背景颜色?【英文标题】:How to change background color of Custom CollectionViewCell? 【发布时间】:2017-12-21 01:50:43 【问题描述】:

我想更改 didSelectItemAtIndexPath 中自定义集合视图单元格的背景颜色。 这是我的实现。

- (void)collectionView:(UICollectionView *)collectionView 
    didSelectItemAtIndexPath:(NSIndexPath *)indexPath

    RadioCollectionViewCell* cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"RadioCollectionViewCell" forIndexPath:indexPath];
    [cell setData:self.contentModel andIndexPath:indexPath];
    cell.lblChoice.backgroundColor = ColorFromRGB(COLOR_GREEN);

这是我对 RadioCollectionViewCell.h

的实现
#import <UIKit/UIKit.h>

@interface RadioCollectionViewCell : UICollectionViewCell
    @property (weak, nonatomic) IBOutlet UILabel *lblChoice;

    - (void)setData:(ContentModel *)contentModel andIndexPath:(NSIndexPath *)indexPath;
    + (RadioCollectionViewCell *)loadFromNib;
@end

但背景颜色没有改变。当我检查示例解决方案时,它们只是更改了UICollectionViewCell 的背景颜色。不是定制的。我只是想知道我可以在CustomAnnotationView 中这样做吗?

【问题讨论】:

请提供更多代码。 【参考方案1】:

应该是

cell.contentView.backgroundColor = ColorFromRGB(COLOR_GREEN);

但是,您应该检查您是如何在情节提要本身中设计 RadioCollectionViewCell 单元的。因为如果该单元格的设计者在 contentView 之上添加了另一个 UIView,那么您需要获取对该视图的引用并更改该视图的背景。

【讨论】:

感谢您的回复。实际上,我添加了一个与 RadioCollectionViewCell 宽度和高度相同的标签。我试图更改该标签的颜色而不是单元格的背景颜色。但它没有用。我不知道为什么。 如果要更改标签颜色,则需要获取标签的iboutlet并正常设置颜色 显示你如何改变标签颜色的代码。并发布 RadioCollectionViewCell 的标题。 我已更新问题以获取更多代码。请检查。 我根据这个答案link更新了我的代码。它现在有效。我更新了“cellforItemAtIndexPath”而不是使用“dequeueReusableCellWithReuseIdentifier”。感谢您的帮助。

以上是关于如何更改自定义 CollectionViewCell 的背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用十六进制更改自定义数字格式颜色?

如何创建自定义标签栏...在标签栏中添加自定义图像(无需 xib 更改)

如何更改自定义单元格的 UILabel 文本?

如何从自定义视图的类中更改文本视图

如何动态更改自定义 UIButton 图像

如何使用自定义主题更改默认文本颜色?