CollectionView默认项目选择

时间:2017-01-25 07:31:29

标签: ios objective-c uicollectionview uicollectionviewcell uicollectionviewdelegate

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

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

出于某些原因,它显示多个类别项目下面的红线颜色不符合我的预期,但文本颜色是正确的。我不知道我做错了什么?

enter image description here

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 个答案:

答案 0 :(得分:1)

您没有在此发布所有相关代码。 从您的代码可能有理由:

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

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