gpt4 book ai didi

ios - 如何从屏幕底部动画插入部分

转载 作者:搜寻专家 更新时间:2023-11-01 06:35:48 24 4
gpt4 key购买 nike

我需要在 UITableView 中做一个动画来插入部分,但我需要这些部分从屏幕底部开始动画。

而且不像默认的 UITableViewRowAnimation 动画之一。

这是我需要的动画:

Animation description

有什么建议吗?

谢谢

最佳答案

我想出了如何用一个简单的解决方案来做到这一点。

public func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {

if shouldAnimate {
cell.alpha = 0
let transform = CATransform3DTranslate(CATransform3DIdentity, 0, UIScreen.main.bounds.height, 0)
cell.layer.transform = transform

UIView.animate(withDuration: 0.5, animations: {
cell.alpha = 1
cell.layer.transform = CATransform3DIdentity
})
}
}

public func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if shouldAnimate {
view.alpha = 0
let transform = CATransform3DTranslate(CATransform3DIdentity, 0, UIScreen.main.bounds.height, 0)
view.layer.transform = transform

UIView.animate(withDuration: 0.5, animations: {
view.alpha = 1
view.layer.transform = CATransform3DIdentity
})
}
}

public func addSections(sections: IndexSet) {
shouldAnimate = true
CATransaction.begin()
CATransaction.setCompletionBlock({ self.shouldAnimate = false })

tableView.beginUpdates()
tableView.insertSections(sections, with: .top)
tableView.endUpdates()

tableView.scrollToRow(at: IndexPath(row: 0, section: 1), at: .top, animated: true)

CATransaction.commit()
}

所以 willDisplay cell/header 从屏幕底部处理动画。

shouldAnimate 在完成 insertSection

后取消单元格动画

关于ios - 如何从屏幕底部动画插入部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41807524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com