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 に答える