如何在UICollectionView中启用选择的视觉反馈

时间:2014-02-27 20:50:11

标签: ios ios7 uicollectionview uicollectionviewcell

我正在制作我的第一个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没有涵盖单元布局的整个区域。这是一个矩形插图。

那么我错过了什么?

1 个答案:

答案 0 :(得分:1)

尝试设置单元格的selectedBackgroundView属性。