我是iOS开发的新手。我目前正在开发一个具有动态内容的应用程序,该应用程序从Web服务器返回,映射到数据模型并显示给用户。
到目前为止,我创建了视图来使用模型,然后将视图作为子视图添加到滚动视图中,计算每个视图的y坐标,以便将它们一个添加到另一个下面。
这种顺序添加的元素是“list like”,可以是表格视图中的表格单元格。到目前为止,我已经避免了这种方法,因为我的一些观点有不同的高度,而且我已经读过,当单元格具有动态行高时,表格视图的性能会显着下降。
我是否存在将顺序子视图添加到滚动视图中的风险? tableview是否是我所描述的更好的解决方案?
答案 0 :(得分:2)
表视图性能可能因动态单元高度而降低的原因仅仅是因为系统必须为每个单元调用-tableView:heightForRowAtIndexPath:
才能正确计算滚动条。 (虽然这在iOS7中随着-tableView:estimatedHeightForRowAtIndexPath:
方法的增加而改变。这些方法可以让你为非可见细胞提供快速和脏的估计高度。)
在任何情况下,这意味着滚动视图将具有相同的性能问题:在将每个子视图添加到滚动视图时,您必须计算每个子视图的高度。 (正如您已经提到的那样。)实际上,表格视图按需加载单元格的能力会比股票滚动视图在性能方面带来很多优势。)
一般来说,您应该选择最适合您的方法。滚动视图本质上是一个空白画布,您可以“滚动自己的”。表视图为您提供了“开箱即用”的许多功能。如果它们是列表,我会倾向于表格视图。
答案 1 :(得分:1)
你绝对应该使用表格视图。您可以使用heightForRowAtIndexPath来管理行高。