2017-03-05 53 views
-2

我正在使用Swift 3,Xcode 8.2。Swift 3 - 如何实现手风琴风格的布局?

我想实现的东西像下面的样子:

enter image description here

我想有一个观点,我可以有一个顶部标题和标签,并用行分隔符一起的前奏段,但是有这样的“手风琴“风格布局,用户可以点击以显示/隐藏信息的不同部分。

有人能指出我正确的方向吗?

+0

这个问题有点宽泛,但我会建议寻找'UITableView'。您可以选择实施一个表格视图,其中每个“主题”(例如'年度利益跟踪者','问题?')都有其自己的部分。标题单元格是其部分中的第一个单元格,当点击它时,可以插入或移除包含手风琴内容的第二个单元格。对于顶部标题/内容,您可以使用'UITableView'的标题视图功能。 – AustinZ

+0

在这种情况下,具有堆栈视图的下拉菜单应该是一个很好的解决方案 –

回答

2

由于UIKit没有实际的手风琴风格布局,所以没有正确的答案,您只需要自己推出。

下面是我已经做到了:

  • 创建切片的tableview的 信息的每个可折叠组是它自己的部分。每个部分应该有一个部分标题。实现viewForHeaderInSection。
  • 标题视图可以有一个标签,上面写着'Yearly Benefit Tracker'等,还有一个披露图片根据 部分是打开还是关闭而改变,就像你的例子。
  • 每个部分都有一个与之关联的轻敲手势识别器。
  • 当敲击手势被触发时,对应的功能增加了该部分的一组“折叠部分”
  • 重新加载表视图
  • 当被称为段的数量它仍返回所有部分
  • 当调用行数检查是否该部分位于折叠节的集合中。如果它已折叠,则返回该部分的0行。
  • 执行展开的反向操作。