类似于Windows的阴影动画隐藏了UITableView中的单元格

时间:2015-11-27 19:21:10

标签: ios uitableview core-animation

我有以下表视图,几个节标题带有一个按钮,允许隐藏/显示该节。我被要求通过向上滚动部分单元格来隐藏该部分,直到该部分关闭(使部分标题可见源部分)。如果没有动画,这很容易,我只需要将单元格高度设置为0,它们在重新加载时就会消失。我不知道如何使用窗帘类型动画来做到这一点。在点击Category0时,我希望Sample0-Sample3在表格的其余部分向上移动时似乎在标题下滚动。

我可以创建一个单独的单元格,其中嵌入了一个固定高度的表格,以避免在没有其他方法的情况下进行多个单元格。

我在Swift中写这个,但两种语言都没问题。

enter image description here

1 个答案:

答案 0 :(得分:0)

要完成这项工作需要一些修补,但您可以使用UIView基于块的动画来为细胞设置动画。

您可以做的第一件事就是简单地将截面中所有单元格的中心位置设置为相同的量,以便底部单元格的底部与截面标题的底部对齐。在动画结束时删除额外的单元格并在表格视图上调用reloadData,它将重新显示以匹配动画。这种方法的问题是单元格不会在节标题下消失。您可能需要为每个单元格的图层添加一个遮罩,以暴露剖面区域的区域,但屏蔽掉其他所有区域。

您可能无法使用UIView动画,可能不得不使用Core Animation。您可以为每个单元格的图层添加遮罩层,在单元格的图层位置上执行动画,更新模型,调用表格视图的reloadData,然后从单元格的图层中移除遮罩并将其位置设置恢复正​​常,这样它们就可以了它们被回收后不会流离失所。