2011-01-01 5 views
4

iPad上にいくつかのビューエンティティを表示するためのグリッドを実装する必要があります。 SDKを最大限に活用するには、UITableViewを使用して 行を追跡してから、セルに入れる正しい列を返すような列挙型を実装すると考えました。UITableViewがすでに作成したセルをデキューする方法と同様のシステムを実装してください。

列挙子は問題なく機能しています。私はtableViews viewControllerを1次元配列に渡し、列挙子はそれを "擬似2次元集合"に分割しますが、格子と行の両方のUITableViewsに似たアプローチを使用したいと思います:

[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

それが今であるので、私は私のようなものと呼ばれる方法で作りたいと思い、行ごとに必要な列のビューの数を構築し、cellForRowAtIndexPath:

内のセルに手動で追加:

columnsForRowAtIndexPath: 

とそれを動作させるIKE cellForRowAtIndexPath..

は、そこで質問はのtableViewは何度も何度も私の細胞を初期化し、どのように私は同様の動作を実装することができ避けるんですか?

-

のtableViewをコピーする細胞をやオーバーヘッドを最小限に抑えて、細胞を返すようにNSCodingを使用して新しいものを構築する場合、私は本当に理解することはできません。 NSMatrixが本当にiOSを持っていると思います。

+0

NSMutableSetは開始する可能性が高いと思われるので、「魔法」はありません。すべてのセルが割り当てられ、初期化され、保持されます。 – RickiG

答えて

1

あなた自身の質問に既に答えているようですが、あなたの疑惑を確認するために、通常から[myCache anyObject]でオブジェクトを取得しようとします。この方法でオブジェクトを正常に取得する場合は、オブジェクトをセットから削除して、再度取得しないようにしてください。一方、-anyObjectnilを返す場合は、必要なキャッシュオブジェクトがキャッシュにないため、新しいキャッシュを作成する必要があります(完了したらキャッシュに戻す必要があります) 。

これは、あなたが撮影しているものを達成する単なる方法です。

意味がありますか?

+0

Bradに感謝し、それに近づく方法を明らかにする。私は数時間の間質問を考えた後、疑問を抱いた。テーブルビューがセルをキャッシュするときに「冗長」なのかもしれません。また、私がそれらに書き込む「水平」コンテンツもキャッシュするでしょう。もっと良いアプローチは、単にcellForRowAtIndexPathに挿入する列の数を計算するロジックですtableViewでそれを処理させます。 didSelectRowAtIndexPathで正しいデータオブジェクトを取り出すために何か似たようなことをしなければなりません。 TableView Matrixを実装する前にテストを行うべきだと思う:) – RickiG

関連する問題