如何更改自定义 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 的背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章