2009-05-09 12 views
1

最初に、私はイメージのためのかなり複雑なスクロールメカニズムを実装しました.1秒のスクロールビューで数十万(理論的に)スクロールすることができます。これは、すべてのUIImageViewを再利用しながら、スクロール時に小さな部分をあらかじめロードすることによって行われます。現在は、作成したUIImageオブジェクトを再利用したUIImageViewsに割り当てるだけです。UIImageViewとUIImage:どうすればそれらの中から最大のパフォーマンスを調整できますか?

新しい画像データを渡すことでUIImageオブジェクトを再利用することが可能な方がよい場合もあります。

問題は、私が現在-imageNamed:メソッドを使用していることです。ドキュメンテーションには、イメージがキャッシュされているというメッセージがあります。

この場合、-imageNamedで表示される問題: イメージがプリロード範囲外にスクロールされるため、イメージはもう必要ありません。ユーザーがスクロールしてスクロールしてスクロールしている間に何千もの画像をキャッシュしようとすると悪いことになります。 そして、新しいイメージデータをUIImageオブジェクトに再利用するための方法を見つけることができたら、キャッシュされた古いイメージはどうなりますか?

だから、面白いと思われる1つの左の方法、あります: -initWithContentsOfFile:

これは、画像をキャッシュしません。そして、この場合には良い--autoreleaseを使用しません。

この場合、-initWithContentsOfFile:を使用する方がよいと思いますか?

答えて

2

ベンチマークのみが確実にわかります。私は、UIImage画像キャッシュがおそらく極端にであると考えています。それは、OS上の事実上どこでも使用されているからです。つまり、表示している画像の数が増えると、あなたのアプローチが役立つかもしれません。

0

私は「はい」と言います。あまりにも多くの画像をキャッシュに保存するためには、-imageNamed:を使用できません。画像が何度も表示されない場合は、パフォーマンスが低下することはありません。

関連する問題