ios - 如何在UITableviewCell中创建UITableView(和UICollectionView)?
怪我咯
怪我咯 2017-04-17 14:25:26
0
5
813

请允许我用Storyboard来表明我的需求。
如图,在这个tableview里面有两个大的cell,一个是另外tableview,一个是collectionview。而且这两个大的cell的高度不是固定的,当点击加载更多的时候,对应的cell里面的tableview长度会增长,cell也会增长(换言之,在这两个cell里面所有内容都需要被全部展示,而不是滑动)。请问如果是这种需求的话,该如何设计呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全員に返信(5)
洪涛

解決策

你的情况其实仅仅一个collectionView就可以搞定了,根据数据源分组对应分几个section,展示更多时候,就修改对应section中的数据源,刷UI就好了,你所“必须”要关注的是你的CollectionView的contentSize以及如何Layout,还有优化的话考虑Cache layout类中的attributes.

入れ子になったスキーム

今日、このように collectionView のネストされた collectionView を書きました (問題を探しているだけではなく、要求されました)。そのアイデアについて話しましょう (TableView のネストも同様です。XIB/SB と純粋なコードの違いは無視してください...) )
PS:いくつか間違いがあります。CollectionView マスターが来て修正してくれるといいのですが...Orz
1) カスタムセル
collectionView をハングする必要があるセルに次のコードを貼り付けます:

リーリー

2) セル内の CollectionView はセルの後に初期化されることに注意してください。つまり、セル内の CollectionView のデータ ソースとプロキシはセルを初期化した直後に設定する必要があります。そうしないとクラッシュについては説明されません。

3.1) セル内の CollectionView のデータ ソースを変更し (データのアクティブ/パッシブ変更などの変更がある場合)、CollectionView 属性を変更し (layoutAttribute が変更されます)、2 つの CollectionView を再配置します。 (tableViewはreloatに対応するindexPathです)

4) 愚痴を言い続ける: CollectionView の本質はレイアウトを書けるかどうかにあります。 。 CollectionView を使用すると、TableView に別れを告げることができますが、学習するのにある程度の時間がかかり、そうでないと使いこなすのが難しくなります。 推奨リソース:

  • Apple 公式ドキュメント
  • iOS UICollectionView、第 2 版電子書籍
  • RayWench ビデオ
いいねを押す +0
大家讲道理

セル内では tableView を使用しないことをお勧めします

理論的にはセルにUITableViewを追加する(外側のセルを内側のtableViewのデリゲートとして機能させる)ことは可能かもしれませんが、そのような書き方は見たことがなく、非常にまずい気がします。理由は 2 つあります:

  1. デリゲートは複雑であり、ビューのカスケード関係も複雑です
  2. これではあなたのニーズは満たされません。あなたは欲しいと言った:

対応するセルのテーブルビューの長さが長くなり、セルも長くなります (つまり、これら 2 つのセルのすべてのコンテンツは、スライドするのではなく完全に表示される必要があります)

しかし、UITableView の高さは固定されており、内部には ScrollView があります。当然、全表示ではなくスクロールに適しています。

考えられる代替手段

この要件は、上下 2 つの大きなセルを 2 つのセクションとして考えることができると思います。上の大きなセルは最初のセクションに変更され、内部のセルには左側に写真があり、最後のセルは「さらに読み込む」と表示され、下の大きなセルは 2 番目のセクションに変更されます。それはコレクションビューの状況によって異なります。たとえば、最初に行に 5 つの項目がある場合、それらを各セルに配置することも、1 つのビューに配置して、このビューを唯一のセルまたは headerView に追加することもできます。次に、フッターまたは最後のセルがさらに読み込まれます。

いいねを押す +0
Ty80

こちらの方法をご利用ください。

リーリー
いいねを押す +0
阿神

uitableview を uitablewview に追加したい場合は、オンラインで検索して、オープンソースのものが存在するかどうかを確認できます。見たのを覚えています。
uicollection を uitableview に追加する場合。アイデアを提案します。以前のプロジェクトでも同様の問題に遭遇したためです。あなたの考えを教えてください。

uitableview はセルの定義をサポートしているため、セルに collectionview を記述してから collectioncell を定義できます。それは確かに実現可能であり、個人的にはコードの量はそれほど多くないと感じます。データをロードするときは、毎回データがセルに渡され、コレクションビューがデータをロードします。
コードを通じてセル内の高さを計算できます。これは可能です。

コンピューターが近くにないので...コードは投稿しません。必要であればメッセージを残していただければ、月曜日に uitableview collection 用に書いたコードを投稿します。

いいねを押す +0
小葫芦

解決策を持っている人はいますか?対立の解決を目指します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート