2012-02-23 7 views
4

私はUIScrollViewの内部にUITableViewを持っています。UIScrollView内のUITableViewでのオンデマンドローディング

、これは理想的ではありませんが、私はスクロールビューを使用してオフにスクロールされ、テーブルの上に別のカスタムビューを入れたかったので、「必要」でした。テーブルビューは、私のアプリケーションの多くの異なる部分で使用されており、カプセル化して再利用可能な状態に保つのに最適です。

問題は、UITableView自体のスクロールを使用しないため(スクロールビュー内に配置されたすべてのセルを表示するのに十分な大きさのサイズ)、セルのオンデマンドロードを失うことです。これは、私のテーブルビューに数個以上のセルがある場合、許容できないパフォーマンスになります。

ダイナミックセルローディングを失うことなくこのような設定を行う最良の方法は何ですか?私は考えることができる

唯一の方法は全部テーブルビュー作り、そして私の上のカスタムビューだけで、別のセルを作っています。しかし、これは私がきれいに私のUITableViewを再利用することができないことを意味します。

+0

「オンデマンドのセルの読み込み」とはどういう意味ですか? – yuji

+0

不明な点をおかけして申し訳ございません。つまり、表示されているときにのみセルが作成されてロードされるため、アプリケーションはすべてのセルを一度に作成する必要はありません。より標準的な方法で使用される場合、これはUITableViewの典型的な動作です。 – dubchoi

答えて

0

限り、あなたのtableViewがscrollViewの内側にあるように、全体のtableViewを描画する必要があるため、あなたはこの問題を持っているでしょう、したがって、すべてのセルが割り当てられる必要があります。

あなたのUITableViewDelegate– tableView:viewForHeaderInSection:– tableView:heightForHeaderInSection:を使用してテーブルビューにヘッダとしてビューを追加することをお勧めします。

これは、別のビュー内にtableViewを配置するだけではクリーンではありませんが、cellForRowAtIndexPath:などのメソッドを混乱させる必要がないため、追加のビューをセルとして実装するほど悪くはありません。

-1

OLEContainerScrollViewが解決策であるようです。

これには、複数のUIScrollView(UITableView、UICollectionView)を追加することができます。その一方で、内部のUITableView、UICollectionViewでセル再利用メカニズムを実行可能に保ちます。

+1

答えとして、ツールやライブラリへのリンクを投稿しないでください。少なくとも、その問題を解決する方法(http://meta.stackoverflow.com/a/251605)を解答そのものに示してください。 –

+0

あなたの提案に従って私の答えを更新しました。ありがとう、@Baum。 – loongman

関連する問題