CollectionView 默认项目选择

Posted

技术标签:

【中文标题】CollectionView 默认项目选择【英文标题】:CollectionView Default Item Selection 【发布时间】:2017-01-25 07:31:28 【问题描述】:

我已经实现了一行多列集合视图,它位于HomeViewController 的顶部。

最初,我想将默认项目设置为被选中并在下方用红线颜色突出显示,以及文本颜色为红色,请参考以下图像。

由于某种原因,它显示多个类别项目的红线颜色不是我所期望的,但文本颜色是正确的。我不知道我做错了什么?

CategoryCollectionViewCell.m

@implementation CategoryCollectionViewCell
@synthesize categoryLabel,highlightedLabel;

- (void)setSelected:(BOOL)selected

    if(selected)
    
        self.categoryLabel.textColor = [UIColor redColor];
        self.highlightedLabel.backgroundColor = [UIColor redColor];
    
    else
    
        self.categoryLabel.textColor = [UIColor lightGrayColor];
        self.highlightedLabel.backgroundColor = [UIColor clearColor];
    

@end

HomeViewController.m

-(void) viewWillAppear: (BOOL) animated 
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^(void) 
        [self loadFromURL]; // that is not related with categoryCollectionView
        dispatch_async(dispatch_get_main_queue(), ^
                [self.categoryCollectionView selectItemAtIndexPath:[NSIndexPath indexPathForRow:3 inSection:0] animated:YES scrollPosition:UICollectionViewScrollPositionCenteredHorizontally];
            
        );

【问题讨论】:

【参考方案1】:

您没有在此处发布所有相关代码。 从您的代码中可能有原因:

1) 您突出显示的标签颜色在​​单元格中设置为默认红色。当您传递代码时,只会更改该单元格。

为此,在 xib/storyboard 中设置您突出显示的标签背景颜色。

【讨论】:

以上是关于CollectionView 默认项目选择的主要内容,如果未能解决你的问题,请参考以下文章

当scrollview快速滚动时如何滚动collectionView?

按照用户方向旋转collectionView

CollectionView 与单元格重叠

选择collectionView单元格时如何获取项目ID

在 CollectionView Swift4 中选择第一个项目

如果collectionView低于某些uiview,iOS如何使collectionView接收触摸