【问题标题】:UITableViewCell delete animation with transparencyUITableViewCell 删除动画透明
【发布时间】:2018-10-31 11:16:06
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

  • 你找到解决这个问题的方法了吗?
  • 是的,我找到了一种使用不同实现的解决方法,因为这里提出的问题无法解决。如果您想了解更多详情,请告诉我!

标签: ios uitableview cocoa-touch


【解决方案1】:

我找到了一种解决方法,它基于在单元格删除被动画化时将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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    相关资源
    最近更新 更多