【发布时间】:2016-08-16 19:42:03
【问题描述】:
我有一个动态的项目列表,每个项目可以有不同的团队板/布局(和高度)。其中一个项目类型可能有一个内部项目列表可供选择,通常有 5-6 行,每行都有不同的高度。
如果我尝试进一步描述它,在我的场景中,我在另一个 tableview (#master) 的 tableviewcells (#master-cell) 中有一个 tableview (#slave)。此外,我的#slave tableview 中的单元格(#slave-cell)也可能具有不同的高度。所以我需要布局我的#slave 让#master 自动计算并更新它的大小。
我遇到了内部表 (#slave) 的问题。在自动布局的情况下,为了适应所有单元格空间,表格将被折叠,不像 UILabel 或其他控件。所以我这里需要的是获取#slave表的投影大小并设置#slave的高度=#slave的内容高度。
我找到了similar post,如果所有行都具有相同的高度,它就可以工作,但我使用的是动态高度的自定义行,所以 tableView.contentSize.Height 给了我无效的结果(基本上只是乘以 rowNumbers *estimatedRowHeight,你可以看到它在屏幕截图上,主项目 #3 有 4 个内部单元格)。即使在调用 #slave.reloadData 之后,我也无法获得那个大小。
构建这种 UI 的正确方法是什么?
Source code 附带一个测试项目 (Xamarin.iOS)
【问题讨论】:
-
为什么tableview里面需要tableView?
-
我想你在找
optional func tableView(_ tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat -
@iOSEnthusiatic 这是设计要求,我有一个动态的项目列表,每个项目可以有不同的布局(和高度)。其中一个项目可能具有可供选择的内部项目列表,通常为 5-6 行,每行具有不同的高度。
-
为什么需要多个表视图?你不能只使用section来划分你的tableView并插入不同高度的单元格(甚至使用UITableViewAutomaticDimension自动计算高度)吗?
-
@SanderSaelmans 你能否建议我如何在我的场景中使用部分。您是否建议为这个特定的数据项使用全新的部分,而不仅仅是单个单元格?
标签: ios uitableview xamarin xamarin.ios autolayout