我使用自动Layout
单元格进行自动height
计算。当我更改单元格高度约束之一时,调用beginUpdates()
并endUpdates()
UITableView
,一切都正确重建,但动画没有按照我想要的方式工作——我希望单元格的高度简单地增加,而不闪烁和移动其上半部分。它可能取决于什么?
我正在附加 GIF,说明我现在制作动画是错误的。https://vk.com/doc19187792_491076127
您可以为Cell类编写扩展并添加一些动画,并在点击时添加单元格。此外,您还应该为此编写一个完成块,当动画完成后,将调用行的高度。
这不是您的完整解决方案,但您可以进行编辑,以便解决您的问题。
extension UIView {
func glow(_ completion: @escaping () -> ()){
let opacity = CASpringAnimation(keyPath: "opacity")
let pulse = CASpringAnimation(keyPath: "transform.scale")
let group = CAAnimationGroup()
pulse.fromValue = 0.4
pulse.toValue = 1
opacity.fromValue = 0
opacity.toValue = 0.65
group.animations = [pulse, opacity]
group.duration = 1.1
group.timingFunction = CAMediaTimingFunction(name: .easeOut)
group.autoreverses = false
group.repeatCount = 0
layer.add(group, forKey: nil)
DispatchQueue.main.asyncAfter(deadline: .now()+1) {
completion()
}
}
}