Ios 在UITableView中隐藏类似于Windowshade的动画单元

Ios 在UITableView中隐藏类似于Windowshade的动画单元,ios,uitableview,core-animation,Ios,Uitableview,Core Animation,我有下面的表视图,几个部分标题,带有一个按钮,允许隐藏/显示部分。我被要求通过向上滚动节的单元格来隐藏该节,直到该节关闭(使节标题在源代码中可见)。如果没有动画,这很容易,我只需要将单元格高度设置为0,然后它们在重新加载时消失。我不知道如何使用window shade类型的动画来实现这一点。点击Category0时,我希望Sample0-Sample3在表的其余部分向上移动时显示在标题下 我可以创建一个单元格,其中嵌入一个固定高度的表格,以避免在没有其他方法的情况下必须创建多个单元格 我是用Sw

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

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

我是用Swift写的,但两种语言都可以


解决这个问题需要一些修改,但您可以使用基于UIView块的动画来设置单元格动画

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


您可能无法使用UIView动画,而可能必须使用核心动画。您可以将遮罩层添加到每个单元的层中,在单元的层位置上执行动画,更新模型,调用表视图的重载数据,然后从单元的层中移除遮罩,并将其位置设置回正常状态,以便它们在回收时不会移位。

是的,最大的问题是隐藏表的正常行为。现在,我有一个简单的UIView动画,它看起来并不坏,但如果这成为一个必须的要求,我会尝试使用核心动画。将更新,因为我知道更多。