UITableViewCell删除具有透明度的动画

时间:2018-05-21 18:50:02

标签: ios uitableview cocoa-touch

我有一个渐变作为我的应用程序的背景。我在顶部添加了一个表格视图,背景清晰。单元格没有背景,标题具有半透明背景(白色,20%alpha)。

我正在使用insertRowsAtIndexPaths:withRowAnimation:deleteRowsAtIndexPaths:withRowAnimation:来创建可扩展/可折叠容器。问题在于,因为我有透明度,当用户点击隐藏单元格时,UITableViewRowAnimationTop会越过节标题,只有在动画完成后才会消失,这非常令人困惑。

我该如何解决这个问题?有没有办法创建自定义UITableViewRowAnimation

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现了一种变通方法,该方法基于将单元格删除动画化时将alpha的值设置为零(动画)。通过这种方法,删除的单元格会逐渐消失,同时与下一个单元格重叠。

基本上,您需要引用要在特定时间删除的确切单元格。然后您只需致电:

UIView.animate(withDuration: 0.2, animations: {
    cell.alpha = 0.0
})

不要忘记将alpha属性重置为1.0,因为该视图可能会被重用。我在我的自定义UITableViewCell单元子类中进行此操作:

override func prepareForReuse() {
    super.prepareForReuse()
    // Reset alpha because we're setting it to zero on cell removal        
    alpha = 1.0
}