2016-04-18 7 views
0

この質問が他の場所で尋ねられた場合、私は似たような質問を見つけるのに苦労しました。iOS - 投稿+コメントデータモデルのView Controller設定のベストプラクティスは何ですか?

私はポストのリストを表示しているアプリケーションを持っており、各ポストにはInstagramのホームページが配置されているのと非常によく似たコメントのリストがあります。

現在の実装

私はそれを実現してきた道、私は単一UITableViewControllerを使用していると私は私のデータソースをバックポストの配列を持っています。各投稿オブジェクトには、それ自身のコメントオブジェクトの配列があります。 numberOfRowsInSectionでは、posts配列を反復処理し、すべての投稿とコメントを追加して合計行数を取得します。私は2つのUITableViewCellテンプレート、1つは投稿用、もう1つはコメント用です。cellForRowAtIndexPathestimatedHeightForRowAtIndexPath(実際には何か重要な機能を果たしています)私は与えられたインデックスパスに対して適切なモデルやビューを得るために、 。

問題

このセットアップは大丈夫動作するようだが、デバッグには本当に難しいとに機能を追加。特に私はサーバーからPusherの更新を実装しようとしているので、ビューを更新する前にモデルを更新するのにかかる時間とモデルの複雑さに関する多くの問題が発生しています。私は

考えられてきた

代替の実装は、私は少しについてUICollectonView秒を読み始め、コメントを表示するために補助的なビューを使用して、唯一のポストは通常​​の細胞であることが持っていることについて考えていたが、私はよく分かりませんそれが実際にコレクションビューがどのように機能するのか、それともこれをもっと簡単にするのであれば。私はまた、必要に応じてコメントビューを動的に自分自身に追加する投稿+コメントに1つのセルテンプレートのみを使用することも検討しましたが、それは可能ではないと私は確信しています。

質問

は、データがレイアウトされている方法に適してい記事+コメントのレイアウトを実装するための簡単な方法はありますか?これはかなり一般的な問題のように思えます。多くの人が解決しているので、誰かが私にベストプラクティスを教えてくれることを願っています。

編集:私が意味するものの一例。赤で概説された部分は、青色で概説された投稿のコメントセクションです。 Instagramは各投稿をセクションにしているようですが、ポスターの名前はフローティングヘッダとして扱われるようになっています。私は最初、自分のアプリをそのように実装しようとしましたが、セクションヘッダーをデフォルトよりも大きくする問題に遭遇しました。

+0

コメントを表示して同じテーブルビューに投稿しますか?あなたはその画面や例を表示できますか? – meda

答えて

1

私はあなたの主な問題は、あなたが「サブエンティティ」のための異なるセルを使用していることだと思います。したがって、1つのエンティティを更新するときに、複数のセルをリロードする必要があるたびに、

テーブルビューとコレクションビューのどちらを選択しても、実際には違いはありません。(レイアウトにもよりますが、Instagramもテーブルビューであると思います)

ビューの処理をより良く/容易にするには、エンティティのすべてのプロパティを処理するセルを作成する必要があります。すべてのコメントを表示するには、新しいView Controllerに切り替えてください。または、1つのポストに1つのセクションを使用することもできます。だから、あなたはただ一つのセクションをリロードすることができます。投稿はセクションヘッダーになり、セクションにはセルがコメントされます。

あなたのセルに簡単にアクセスできます。 tableData [セクション] .commments [行]。そして、コメントが追加されたら、セクションに新しい行を挿入するだけで済みます。

私はあなたの問題を理解してくれることを願っています。

+0

ええ、それはまさに私の問題です。各投稿をセクションにするのが最善の解決策であるようです。私はそれを実装し始めました、そして、私のコードの最悪の部分は、もっと良く見えています、なぜこのアプローチを放棄したのかわかりません。 – NewShelbyWoo

関連する問題