我已经能够for i, result in enumerate(res.results):
print(result.text)
if i > 2: break
在CADisplayLink
中运行进度条动画。我将整个动画写在自定义单元文件中。这是代码:
TableViewCells
没有重复使用单元格时,动画效果很好。
但是,当我滚动并重新使用单元格时,动画就会陷入混乱。我知道此类计时器需要在控制器中实现。如果您有override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
contentView.addSubview(timeRemainingView)
contentView.addSubview(testlabel)
contentView.bringSubviewToFront(testlabel)
contentView.backgroundColor = .white
let displayLink = CADisplayLink(target: self, selector: #selector(handleProgressAnimation))
displayLink.add(to: .main, forMode: .defaultRunLoopMode)
setupViews()
}
var animationDuration = 60.0 //Just initialization value
let animationStartDate = Date()
@objc func handleProgressAnimation() {
let currenttime = Date()
let elapsed = currenttime.timeIntervalSince(animationStartDate)
// do your animation logic here
let percentage = elapsed / animationDuration
timeRemainingView.frame.size.width = CGFloat(400 - (400 * percentage))
if (percentage >= 1 )
{
self.timeDurationCompleted()
}
}
,我只需要一些帮助。每个CADisplayLink
都有自定义时间,我可以通过控制器中的cellforrow设置该时间:
TableviewCell
durationTime只是一个整数数组,所有时间都以秒为单位。
我该如何通过控制器的CADisplayLink计时器实现这种动画,从而克服单元重用问题。