2012-04-05 9 views
0

クロスワードアプリケーションを作成しようとしています。プレーヤーはズームやスクロールなどが可能でなければならないため、ゲームはUIScrollViewで実行されます。最大のクロスワードは21x21なので、タッチ可能なタイルが441個必要です。私がこれまでに試したことは、UIViewを作成し、それをUIScrollViewにサブビューとして追加することでした。次に、441のカスタムUIButtonを作成し、backgroundImageを設定するメソッドを呼び出します。UIScrollViewがiPhoneに遅れている

UIButtonのいくつかにカスタムラベルオーバーレイが必要なので、UILabelを追加してUIButtonの上に設定します。

私はシミュレータのすべての作品を実行する必要がありますが、私はiPhone 4でそれをテストするとき、UIScrollViewはかなり遅れています。

これを行う方法がわからないのですか?おそらく、UIScrollViewがデバイス上で遅れないように、これを行う方法の正しい方向に私を導くことを試みることができますか?

ありがとうございます。

+1

私はあなたがメモリを大量に使用していると思います。 – Robin

+0

インストゥルメントは、1.5 MBの合計使用量を示します。/ –

答えて

1

ビッグUIScrollViewのもあり、このようなUITableViewによって提供される一つとして、キャッシュ機構のいくつかの並べ替えすることなく、スムーズに行うことが困難です。

ただし、レンダリングを簡単にするには、できる限り不透明な背景を使用するようにしてください。ビューを透過的にする代わりに、そのビューをその基底ビューと同じ色にする必要があります。これは助けとなるものです。

また、UIScrollViewで使用する画像を初期化するためにimageNamed:の代わりにimageWithContentsOfFile:を使用してパフォーマンスを向上させました。

0

これらのボタンをすべてメモリに保持しないようにするには、再利用可能なテーブルビューセルを使用する必要があります。これにより、スクロールのパフォーマンスが大幅に向上します。ここであなたの人生を容易に作ることができる一つの成分があります:DTGridView、他の人(あなたがCocoa Controlsを確認することができます)

+0

ユーザーはDTGridViewをズームインできますか? –

+0

私はこれをサポートしているとは思わないが、オープンソースなのでこの機能を自分で追加することができる – Demz

関連する問題