1

我正在使用GMGridView带有子类UIViewcontentView单元格。这些被分配在

- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index

现在我希望单元格有一个突出显示,类似于UIButton. 这意味着有一个稍微不透明的较暗覆盖层。我只是不知道我必须在哪里分配突出显示。

我看到它GMGridViewCell有一个名为 的属性highlighted,它指示单元格是否突出显示。在上述方法中将其设置为cell.highlighted = YES;不会改变单元格外观的任何内容。

GMGridView网站上的描述中它说

特点 - 一般:

  • 单元格突出显示支持

所以,应该有办法...

谁能告诉我,突出显示应该如何分配?

4

1 回答 1

1

当这种情况发生时,我讨厌它。刚刚找到答案。

显然,突出显示将应用于 的子视图cell.contentView,这可以在提交中看到。

触摸时单元格将被设置为突出显示:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.highlighted = YES;
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.highlighted = NO;
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.highlighted = NO;
}

然后子视图的高亮状态将被激活。

-(void)setHighlighted:(BOOL)aHighlighted {
    highlighted = aHighlighted;

    [self.contentView recursiveEnumerateSubviewsUsingBlock:^(UIView *view, BOOL *stop) {
        if ([view respondsToSelector:@selector(setHighlighted:)]) {
            [(UIControl*)view setHighlighted:highlighted];
        }
    }];
}

因此,要实现单元格突出显示,我只需要在UIImageView自定义单元格视图的部分上方添加一个透明层。希望这对任何人都有帮助。

于 2012-09-25T08:55:08.633 回答