在 Objective-C 中实现此滚动 UI 的最佳方法是什么?

What is the best way to implement this scrolling UI in Objective-C?

我正在尝试实现如下图所示的界面视图。

UI Image

这个UI由三部分组成,蓝色标签、箭头标签和灰色标签。

在这个UI中,需要满足以下要求。

目前我觉得用UITableView和自定义tablecell来实现这个UI还是不错的。但我不确定如何实现它,尤其是在蓝色标签之间显示箭头标签,在灰色标签之前附加新的蓝色标签。

有没有什么好的方法可以在UITableView中轻松实现这些功能?或者,还有其他方法可以做到这一点,比如使用 UIScrollView?

非常感谢您的想法和帮助。

如果您正在为 iOS9 构建,您可以使用 UIStackView,它使用起来非常简单并且适合您的 requirement.You 必须使用带有滚动视图的 UIStackview。 对于示例,您可以使用下面的代码 link.

https://gist.github.com/twostraws/a02d4cc09fc7bc16859c

不要使用 UIScrollView。随着蓝色单元格的数量越来越大,您将使用越来越多的内存。正确使用 UITableView 可确保随着单元格数组长度的增长,您的内存使用保持固定(来自 UI 的内存)。

这里有两个基本选项:

多个部分,或单个部分。

对于多个部分,每个 UITableViewCell 都是一个蓝色单元格。对箭头单元格使用 UITableViewSectionFooter。这保证每个蓝色单元格总是有箭头单元格。

对于单个section,cells的数量=#ofbluecells * 2。然后,使用indexPath.row % 2来决定是否出队一个蓝色cell或arrow cell。

无论您采用哪种方法,您都应该为 'add new cell' 行为使用 UITableViewFooterView。

在任何一种方法中,您都可以通过更新数据模型(很可能是数组)然后调用 [tableView beginUpdates] 来删除单元格; [tableViewDeleteRowsAtIndexPaths:]; [tableView endUpdates];

插入一个新的蓝色单元格,除了添加到数组外,与删除相同。

无论采用哪种方法,您都不必管理单独的箭头单元格数组。如果点击箭头单元格没有任何反应,我个人会走每个蓝色单元格 1 个部分的路线。