如何构造复杂的表元素

时间:2017-09-25 08:00:44

标签: ios uitableview autolayout uitableviewautomaticdimension

通常表格易于管理,特别是因为自动布局可以完成大部分繁重工作以确定单元格大小等。但是,有些事情会像投票表一样变得有点棘手。

在这种情况下的民意调查包括具有可变描述长度的标签,具有不同大小的图像以及供用户选择的一组选项(基本上是嵌套表)。

----方法1 ------

将每个民意调查分解为多个单元格

enter image description here

赞成: 将来很容易在轮询中添加更多字段,对于每个元素的单个单元格,布局更容易处理,尤其是在嵌套表格的情况下。如果您需要回退到手动计算特定单元格的大小,您可以在保持其他所有内容自动完成的同时进行。

缺点: 如果你有多个民意调查,你需要跟踪哪个单元格对应哪个民意调查,你通常需要做一些算术来跟踪什么是。

----方法2 -----

让包含所有这些元素的轮询成为一个大单元格,并在它们之间适当地设置约束。

enter image description here

赞成: 它易于实现,以一对一的方式将您的模型映射到您的单元格,而无需对数据进行多重多路分解。

缺点: Autolayout可以通过嵌套表变得毛茸茸。例如,对于这种情况下单元格的高度,我习惯返回UITableViewAutomaticDimension,直到我意识到这不会削减它,因为存在一个可能是任何类型大小的嵌套表。计算嵌套表的内容大小非常简单,但是,这意味着你必须计算所有其他元素以及现在你返回一个特定的高度而不是自动的。你的工作变得更加艰难。

---- ---- OUTRO

你如何处理这样的问题?方法1,2或完全不同的东西?我在这里简化了元素的结构,使事物更具可读性,还有更多神秘的东西,比如阴影视图,包含你看到的创建浮动卡幻觉的元素等。

谢谢大家。

P.S:如果某个地方已经有了这方面的答案,请指出我,我还没有找到太多。希望这篇文章可以引发一些关于此事的讨论并帮助其他人。

1 个答案:

答案 0 :(得分:0)

Paulw11建议的一个简单的替代方案是使用部分和方法1 。尽管这可能不包括在表格中的表格中包含表格的情况,但对于我所想象的,大多数情况下,每个可以想象的情况都具有可观的UI。