2012-09-25 134 views
1

我使用的GMGridView与子类型UIView作为contentView的单元格。这些在GMGridView的单元格突出显示

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

分配现在,我想的细胞有一大亮点,类似于UIButton的行为。这意味着有一个稍微不透明的较暗覆盖层。我只是无法弄清楚我不得不分配突出显示的位置。

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

GMGridView网站上的描述,它说

特点 - 一般:

  • 细胞高亮的支持

所以,应该有一种方法...

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

回答

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。希望这有助于任何人。

相关问题