4

Pinterest のようなグリッド ビューを実装したい

3つのテーブルビューとして実装することを考えました。しかし、それらをうまく一緒にスクロールできませんでした。scrollView 以外のテーブルビューに を実装しscrollViewDidScrollて設定すると、スクロールが遅くなり、使用できなくなりました。contentOffset

私が行ったもう 1 つの実装は、ロードする一連の画像を用意し、.NET で viewDraw 関数を呼び出すことでしたscrollViewDidScroll。このViewDraw関数は、必要な画像を描画するだけで、既に描画されているが表示されない残りの画像をメモリから削除します。これも ScrollView のスクロールを遅くします。もう 1 つの問題は、画像が描画される前に白 (背景色) のパッチがあることです。

このグリッドビューを実装する最良の方法は何ですか?

4

1 に答える 1

3

解決策1(これが機能するかどうかはわかりませんが、あまり好きではありません)

3つの垂直テーブルビューを並べて、タッチイベントを任意のテーブルビューから他のテーブルビューに転送するのはどうですか。テーブルビューを同期しようとしたときにパフォーマンスの問題が発生したことは理解していますが、イベントレベルで作業する方がうまくいく可能性があります。多分。

解決策2

UIScrollViewを使用します(もちろんスクロール目的で)。パフォーマンスとメモリの理由から、すべてのイメージを一度にロードしないように、ロードオンデマンドメカニズムを実装する必要もあります。

これを行うには、垂直方向の画像リストを処理するCustomImageStripというクラスを作成します。このクラスはscrollviewと連携して機能しcontentOffset、ストリップから画像をロード/アンロードするタイミングを決定するために使用します。

3つの独立した画像ストリップクラスを持つことにより、画像は任意のサイズにすることができ、位置合わせする必要はありません。ただし、それらはすべて同じUIScrollViewに属しているため、スクロールは同時に実行されます。

于 2012-02-26T08:05:51.337 に答える