1

我有一个 UICollectionViewCell,上面有我的一些内容,如图像、标签、视图。

我想获得这种行为(就像正常细胞的相反行为):

  • 默认情况下,这个单元格有一个视图(一个简单的 UIView,设置了一个 alpha 来显示一些不透明度),就像它没有被选中时一样。
  • 当用户选择单元格时,必须删除此 alpha 视图。

如果我尝试安装 UITapRecognizer:

    // Create gesture recognizer
UITapGestureRecognizer *oneTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onShadowLayerPressed)];

// Set required taps and number of touches
[oneTap setNumberOfTapsRequired:1];
[oneTap setNumberOfTouchesRequired:1];

// Add the gesture to the view
[self.shadowView addGestureRecognizer:oneTap];

并在方法之后

 - (void)onShadowLayerPressed
{
    [super setSelected:YES];
    [self setSelected:YES];
}

水龙头是从 self.shadowView 收到的,但它不会发送到单元格....

我该如何解决这个问题?

谢谢

4

1 回答 1

2

您正在使用@property (nonatomic, getter=isSelected) BOOL selected并根据文档

您通常不直接设置此属性的值。以编程方式更改此属性的值不会更改单元格的外观。选择单元格并突出显示它的首选方法是使用集合视图对象的选择方法。

所以你应该使用:

- (void)selectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(UICollectionViewScrollPosition)scrollPosition

这是记录在这里

于 2012-12-27T18:07:31.577 回答