gpt4 book ai didi

ios - 重写 Swift 中行插入的 withRowAnimation 样式

转载 作者:行者123 更新时间:2023-11-29 01:40:55 28 4
gpt4 key购买 nike

我正在使用 insertRowAtIndexPath 函数在我的 tableview 中插入一系列行。但是,内置动画样式 (.Fade、.Top、.Bottom 等) 不能完全满足我的需求。

我需要创建自己的自定义动画,我知道这可以通过覆盖 UITableViewRowAnimation 来完成,但我不确定应该如何处理。

期待您的建议。

感谢任何见解。

最佳答案

在你的 UITableView 子类中尝试这个。

override func insertRowsAtIndexPaths(indexPaths: [NSIndexPath], withRowAnimation animation: UITableViewRowAnimation) {
super.insertRowsAtIndexPaths(indexPaths, withRowAnimation: UITableViewRowAnimation.None)

self.endUpdates()
self.beginUpdates()

for indexPath:NSIndexPath in indexPaths {

let cell:UITableViewCell? = (super.cellForRowAtIndexPath(indexPath))

if cell != nil {
var frame:CGRect = (cell?.frame)!
frame.origin.x = (cell?.frame.size.width)!
cell?.frame = frame
frame.origin.x = 0

let animationBlock = { () -> Void in
cell!.frame = frame;
}

if UIView.respondsToSelector(Selector("animateWithDuration(duration: , delay: , usingSpringWithDamping dampingRatio: , initialSpringVelocity velocity: , options: , animations: , completion: ")) {
// UIView.animateWithDuration(0.3, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.0, options:0.0, animations: animationBlock, completion:nil)
UIView.animateWithDuration(0.3, delay: 0.0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0.0, options: UIViewAnimationOptions.CurveEaseInOut, animations: animationBlock, completion: nil)
} else {
UIView.animateWithDuration(0.3, delay: 0.0, options:UIViewAnimationOptions.CurveEaseIn, animations: animationBlock, completion: nil)
}
}
}
}

关于ios - 重写 Swift 中行插入的 withRowAnimation 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394069/

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