2011-02-03 11 views
3

私はiphoneのフォトアルバムに似たコンポーネントを実装するつもりです.uviewsを使用するとコンポーネントのパフォーマンスが悪くなると思いますが、スクロールしてスクロールしていくということです? CALayerはパフォーマンス面でUIViewより優れていますか? UIViewのサブクラスを使用せずに画像やテキストを描画する方法はありますか?Objective Cで画像とテキストを描画する最も軽い方法はどれですか?

任意のリンクやアイデアは素晴らしいものだ、

感謝します!

答えて

2

グラフィックスと、UIViewと図面の長所と短所に関するチュートリアルがたくさんあります。私は専門家ではありませんが、あなたのインスタンス化とキャッシュ戦略からパフォーマンスが得られる可能性が高いと思われます。私。スクロールを高速化し、インスタンス化されたオブジェクトの数を最小限に抑えたい場合は、それらをキャッシュして再利用し、データをロードするための効果的なブロックロードルーチンはすべて大きなメリットをもたらします。

しかし、私は最初にコンセプトアプリの簡単な証明を行い、デバイスにロードし、それがどれほど速く進み、パフォーマンスの問題に対処する必要があるのか​​を確認する傾向があります。コンポーネントのキャッシュや再利用などの標準的な設計戦略とは別に、パフォーマンスのボトルネックがどこに発生しているのかを特定する前に、パフォーマンスを最適化しようとするのは一般的には良い考えではありません。

0

既存のシステム実装を再開発する場合は、まずシステムの実装を使用して、その時点でどのような問題が発生しているのかを確認します。

あなたが非常に特殊化した、または簡単にUIViewで実現したことがある場合は、CoreGraphics.frameworkとCoreText.frameworkを調べてください。

上位レベルのライブラリの図やアニメーションの多くは、CoreGraphicsテクノロジを使用しています。しかし、それらはしばしば簡略化されているか、より高いレベルであり、特定の抽象化コストを含むことがある。あなたがUIKit/AppKitレンダリングを理解していないと、それを学ぶのに多くの時間を費やす可能性が高く、必ずしもUIKit/AppKit実装の改善ではありません。あなたがUIView/NSViewとグラフィックスに非常に慣れているなら、あなたのカスタマイズされた図面のために多くを得ることができます。

「コンポーネントを行いますuiviewsを使用すると、悪いパフォーマンスを持っていることを推測」するのは良い考えではないかもしれない

を(私はあなたがこれでOpenGLの層に行くされていないと仮定しています)。実装が既に存在する場合は、アップルがそれを最適化するのに時間を費やしたことを信頼してください。あなたのニーズに特有の改善を開発する過程で、投資する時間と知識が潜在的に得られます。 UIView/NSView内でCGレンダリングを使用することもできますので、必ずしもUIViewの置き換えを再作成する必要はありません。あなたはOPでCoreGraphicsについて言及していないので、私はあなたがそれにあまり慣れていないと推測しています。

幸運

関連する問題