【问题标题】:Windowshade-like animation hiding cells in UITableViewUITableView 中类似 Windowsshade 的动画隐藏单元格
【发布时间】:2015-11-27 19:21:10
【问题描述】:

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

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

我是用 Swift 编写的,但任何一种语言都可以。

【问题讨论】:

    标签: ios uitableview core-animation


    【解决方案1】:

    这需要一些修补才能解决,但您可以使用基于 UIView 块的动画来为单元格设置动画。

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

    您可能无法摆脱使用 UIView 动画,而可能不得不使用 Core Animation。您将蒙版图层添加到每个单元格的图层,在单元格图层的位置上制作动画,更新您的模型,调用表格视图的 reloadData,然后从单元格的图层中删除蒙版并将它们的位置设置回正常状态,以便它们回收后不会移位。

    【讨论】:

    • 是的,最大的问题是隐藏表的正常行为。现在我让它与一个简单的 UIView 动画一起工作,这对我来说看起来并没有那么糟糕,但如果这成为一个必须的要求,我会尝试使用核心动画。当我知道更多时会更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    相关资源
    最近更新 更多