我正在使用带有子UIView
的{{3}}作为单元格的contentView
。这些是在
- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index
现在我希望单元格有一个突出显示,类似于UIButton
的行为。这意味着有一个稍微不透明的深色覆盖层。我无法弄清楚我必须指定突出显示的位置。
我看到GMGridViewCell
有一个名为highlighted
的属性,它指示该单元格是否突出显示。在上述方法中将其设置为cell.highlighted = YES;
不会改变单元格外观中的任何内容。
在GMGridView
网站上的说明中
功能 - 一般:
- 单元格突出显示支持
所以,应该有办法......
有人可以告诉我,应该如何分配突出显示?
答案 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
透明层。希望这对任何人都有帮助。