我正在制作我的第一个UICollectionView。布局进展顺利。我有甘特风格的酒吧,上面有标签。我在allowsSection = YES
上设置了UICollectionView
。如果我添加委托方法,例如:
- (BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"collectionView:shouldSelectItemAtIndexPath: %@", indexPath);
return YES;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"collectionView:didSelectItemAtIndexPath: %@", indexPath);
}
- (void)collectionView:(UICollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"collectionView:didHighlightItemAtIndexPath: %@", indexPath);
}
我看到选择似乎在某种程度上发生了。但是没有对选择的视觉反馈。我有一个自定义UICollectionViewCell
子类,我在CAShapeLayer
添加了contentView
。由于Apple的文档,我特别避免搞乱子类自己的层:
要配置单元格的外观,请将显示数据项内容所需的视图添加为contentView属性中视图的子视图。不要直接将子视图添加到单元格本身。该单元管理多个内容层,其内容视图仅为一个。除内容视图外,单元格还管理两个背景视图,以显示处于选定和未选定状态的单元格。
这让我相信我应该免费获得视觉选择反馈。我确保我的CAShapeLayer
没有涵盖单元布局的整个区域。这是一个矩形插图。
那么我错过了什么?
答案 0 :(得分:1)
尝试设置单元格的selectedBackgroundView属性。