GMGridView的单元格突出显示

时间:2012-09-25 08:36:00

标签: ios gmgridview gmgridviewcell

我正在使用带有子UIView的{​​{3}}作为单元格的contentView。这些是在

中分配的
- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index

现在我希望单元格有一个突出显示,类似于UIButton的行为。这意味着有一个稍微不透明的深色覆盖层。我无法弄清楚我必须指定突出显示的位置。

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

GMGridView网站上的说明中

  

功能 - 一般:

     
    
        
  • 单元格突出显示支持
  •     
  

所以,应该有办法......

有人可以告诉我,应该如何分配突出显示?

1 个答案:

答案 0 :(得分:1)

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

显然,突出显示将应用于cell.contentView的子视图,可在此处in the commit查看。

触摸时将突出显示单元格:

- (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透明层。希望这对任何人都有帮助。