2014-02-11 40 views
2

我是iOS开发新手。我目前正在开发一个应用程序,该应用程序具有从Web服务器返回的动态内容,映射到数据模型并显示给用户。要动态添加UIViews,还是创建一个UITableView? ios

到目前为止,我已经创建的视图消费模型,然后添加视图作为子视图为滚动视图,计算y坐标为每个使他们增加了一个以另一个。

这种顺序添加元素是“列表像”,并且可以是在表视图表格单元。到目前为止,我已经避免了这种方法,因为我的一些视图具有不同的高度,而且我已经读过,当单元格具有动态行高时,表视图上的性能显着下降。

我是否风险增加性能顺序子视图为滚动视图? tableview是我所描述的更好的解决方案吗?

+1

你从任何标准表视图的行为,如编辑模式下,连续动画中受益,滚动时,状态栏被窃听的顶部,等等? – Justin

+0

除非你做的事情与表格视图完全不同,否则我会使用UITableview并修改它以与你的设计一起工作。通过将UIViews添加到UIScrollView,您基本上重新发明了轮子。 – logixologist

+0

不,并点击状态栏将已经滚动我的滚动视图与子视图顶部。 @Justin –

回答

2

表视图性能可能会随着动态单元高度而降低的原因仅仅是因为系统必须为每个单元调用-tableView:heightForRowAtIndexPath:才能正确计算出滚动条。 (虽然这改变了iOS7与另外-tableView:estimatedHeightForRowAtIndexPath:方法。这些方法将使你非可见细胞提供了快速和肮脏的估计的高度。)

在任何情况下,这意味着滚动视图将具有相同的性能问题:当你将它添加到滚动视图时,你将不得不计算每个子视图的高度。 (正如你已经提到过的那样)。事实上,table view根据需求加载单元格的能力,会在库存滚动视图中为你提供很多性能优势。)

一般来说,您应该选择使用最多感觉你。滚动视图本质上是一个空白的画布,您可以“自己滚动”。表格视图为您提供了很多“开箱即用”的功能。如果他们是名单,我会倾向于桌子的意见。

+0

这是有道理的。谢谢! –

1

你绝对应该使用一个表视图。您可以使用heightForRowAtIndexPath来管理行高。

+0

我不反对,但你应该尽力支持你的建议与证据。 – Justin