我正在将GMGridView和子类UIView用作单元格的contentView。这些是在

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


现在,我希望单元格具有突出显示,类似于UIButton的行为。意味着有一个稍微不透明的深色叠加层。我只是不知道必须在哪里分配突出显示。

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

GMGridView网站上的说明中说


  功能-常规:
  
  
    
    单元格突出显示支持
    
  


因此,应该有一种方法...

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

最佳答案

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

显然,突出显示将应用于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。希望这对任何人有帮助。

关于ios - GMGridView的单元格突出显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12579110/

10-12 14:35
查看更多