如何在UITableviewCell中创建UITableView(和UICollectionView)?


图片描述

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

storyboard ios xcode uitableview

蓬莱佐玖夜 10 years, 12 months ago

建议不要在 cell 里套 tableView

在 cell 里再加 UITableView,理论上或许可行(让外层 cell 作为内层 tableView 的 delegate),但我从没见过这样的写法,也感觉这样很不好。原因有2:

  1. delegate 复杂,view 的层叠关系复杂
  2. 这样反而不能达到你的需求。你说想要:

对应的cell里面的tableview长度会增长,cell也会增长(换言之,在这两个cell里面所有内容都需要被全部展示,而不是滑动)

但 UITableView 的高度是固定的,里面是 ScrollView。它天然是适合滚动的,而不是全部显示。

可能的代替做法

我觉得这个需求可以考虑能否把这上下两个大 cell 考虑为两个 section?上面的大 cell 改成第一个 section,里面的 cell 里左边有图片、右边两个 label 的,footer 或最后一个 cell 是“加载更多”;下面的大 cell 改成第二个 section,里面根据你 collectionView 的情况而定。比如是本来是一行排5个,可以是每个 cell 里排5个;也可以是全排在一个 view 里,把这个 view 添加到唯一的 cell 上或添加到 headerView 上。然后 footer 或最后一个 cell 是加载更多。

八云紫蓝橙 answered 10 years, 12 months ago

Your Answer