0

テーブルビューにカスタムヘッダービューを作成しています。カスタムビューにはグラデーションがあります。

表示される唯一のヘッダーである場合にのみ、そのグラデーションを表示したいと思います。

したがって、ユーザーがスクロールしていて、テーブルビューの2つのセクションが表示された場合、テーブルビューの2番目のセクションにグラデーションを付けないでください。

これを行うための最良のアプローチは何ですか?

4

1 に答える 1

0

ここにいくつかの考えがあります:

おそらくテーブルのデリゲートで、ヘッダービューをキャッシュできます。ヘッダービューが要求されるたびに、ピアをチェックして、それらが画面に表示されているかどうかを確認します(UIViewの.windowプロパティがnil以外であると判断されます)。

- (UIView *)tableView:tableView viewForHeaderInSection:section {
    if([_headerViews objectAtIndex:section-1].window ||  [_headerViews objectAtIndex:section+1].window) {
        // there are peers on screen
    } else {
        // this is the only one onscreen
    }
}

これは単なるサンプルコードであり、ビューが適切に初期化されることなどを保証するものではありません。

于 2012-06-20T23:35:32.110 に答える