swift - 如何在静态 UITableView 中获取嵌入式动态 UITableView 的高度
问题描述
我正在尝试创建一个与 iOS 中的联系人编辑屏幕非常相似的用于输入患者信息的屏幕。
我认为屏幕应该是一个静态表格,其中包含简单的单元格,例如名字、姓氏等。
静态表中的单元格包含带有动态单元格的嵌入式表格。将有一个用于电话号码的嵌入式表格,另一个用于街道地址,另一个用于医疗服务提供者,......这些嵌入式表格中的每一个都可以有零个或多个条目。
在静态表中嵌入动态表是正确的方法吗?
我不知道如何获取嵌入内容的高度,以便设置静态单元格的高度。
解决方案
这是一个相当高级的话题,我现在无法深入讨论,但我会尝试为您提供一些关于如何进行的指示。
- 我建议不要将 tableviews 嵌入到其他 tableviews 中。
- 使用动态表格视图。
- 创建一个视图模型,为控制器提供一组对象来渲染。
- 控制器仅从视图模型中获取对象并决定渲染哪些单元格(控制器中没有逻辑)
- 在视图模型中处理数据的所有复杂性(静态内容、动态子数组、部分、if-else 语句……)
- 使用例如堆栈视图构建复杂的单元格(在您的示例中为地址单元格)。
- 处理一个单元格内的多个字段可能很棘手,您将不得不对该主题进行更多研究。
有很多关于视图模型架构(“mvvm”)的教程,谷歌一下。
我希望这会有所帮助,祝你好运,黑客愉快!