2009-05-05 6 views
0

私は画像のグリッドを持つUIScrollViewを持っています。現在は6つしかないが、ある日は数百になるかもしれない。もちろん、UIScrollView内に数百のUIImageViewオブジェクトを作成し、それらをすべて画像データで埋めるのは悪い考えです。私はAppleのドキュメントのどこかでこれを読んでいたと思います。スクロール可能な可視領域を埋めるために必要なので、羊毛のエレメンツを作成することをお勧めします。UIScrollView:ユーザーがスクロールしたときにスクロール可能なグリッド内のオブジェクトをリサイクルするにはどうすればよいですか?

しかし、UIImageView要素を即座に再配置すると、パフォーマンスの問題が懸念されます。おもう。ユーザーがスクロールダウン(0,0で始まると仮定することができます)、私は上部に表示領域から外にそれらをすぐに配置し、次に非常に(! )すぐに新しいイメージオブジェクトをその行のそのUIImageViewsに追加します。つまり、ユーザーが野生のガゼルのようにスクロールし始めると、速くて速いのですか?

これを行うにはどうすればよいですか?

答えて

1

同様の小規模な状況では、私はスクロールビューの寸法に必要な以上にデータをロードすることでこれを処理しましたが、データセット全体ではありませんでした。私は水平方向にのみスクロールしていました。現在表示されている画像の両面に1または2画像を読み込むと、すばらしくスムーズになりました。 1つしか表示されていない場合でも3枚または5枚の画像が読み込まれていますが、数十枚を読み込むよりもずっと面白いです。目に見える範囲を周りにどれくらいの傾きを許す必要があるかを少し調べる必要があります。

イメージを動的にロード/アンロードすることは、スクロールビューのデリゲートメソッドで最も効果的です。

1

UIScrollView(または実際にはUIKit)は、変更されないものを再描画しないことで非常に優れています。画面(またはクリップされた)ビューを移動(またはリサイクル)するだけでは、再描画は発生しません。サブビューを画面外に追加している状態。

ページングを有効にしていない場合は、UIViewが提供するより高速な描画コードを実装する必要があります。しかし、私は最初に試してみる - iPhoneの物理的限界が限界までスクロールしている。

関連する問題