CollectionView 默认项目选择
CollectionView Default Item Selection
我已经实现了单行多列 集合视图,它位于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];
}
});
}
您没有post此处的所有相关代码。
从您的代码中可能有原因:
1) 您突出显示的标签颜色在单元格中设置为默认红色。当您传递代码时,只会更改该单元格。
为此,在 xib/storyboard 中将突出显示的标签背景颜色设置为清除。
我已经实现了单行多列 集合视图,它位于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];
}
});
}
您没有post此处的所有相关代码。 从您的代码中可能有原因:
1) 您突出显示的标签颜色在单元格中设置为默认红色。当您传递代码时,只会更改该单元格。
为此,在 xib/storyboard 中将突出显示的标签背景颜色设置为清除。