我如何在 Table 视图中与 Swift 同步动画
How I can sync animations in Table View with Swift
我有一个 table 视图,每个单元格中都有动画,动画是一个闪烁的圆圈,但是当滚动新行时,它会在不同的时间闪烁。这个想法是所有的圆圈同时闪烁。
感谢任何帮助。我有 2 天时间尝试不同的东西。最后是用定时器制作我自己的动画并将时间保存在全局变量中。但我认为核心动画应该可以做到这一点。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myClassCell", for: indexPath) as! MyClassCell
cell.circleBlinking.alpha = 0
View.animate(withDuration: 1, delay: 0, options: [.repeat, .allowUserInteraction, .curveLinear], animations: {
cell.circleBlinking.alpha = 1} )
}
return cell
}
最后我找到了满足需求的解决方案。我用定时器制作了动画。
- 我创建了一个全局计时器,它每 1/24 秒更改一个全局变量,从 0 到 1 和从 1 到 0
- 当经过 cellForRowAt 时,我仅为该单元格创建了另一个计时器,但该函数只是从我的全局变量中给出值 alpha,该变量正在被主计时器修改。这样我就可以让所有圈子同步
如果有人知道如何用 animate 做到这一点,欢迎回答。
我已经将代码和解决方案上传到 Github。
我有一个 table 视图,每个单元格中都有动画,动画是一个闪烁的圆圈,但是当滚动新行时,它会在不同的时间闪烁。这个想法是所有的圆圈同时闪烁。
感谢任何帮助。我有 2 天时间尝试不同的东西。最后是用定时器制作我自己的动画并将时间保存在全局变量中。但我认为核心动画应该可以做到这一点。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "myClassCell", for: indexPath) as! MyClassCell
cell.circleBlinking.alpha = 0
View.animate(withDuration: 1, delay: 0, options: [.repeat, .allowUserInteraction, .curveLinear], animations: {
cell.circleBlinking.alpha = 1} )
}
return cell
}
最后我找到了满足需求的解决方案。我用定时器制作了动画。
- 我创建了一个全局计时器,它每 1/24 秒更改一个全局变量,从 0 到 1 和从 1 到 0
- 当经过 cellForRowAt 时,我仅为该单元格创建了另一个计时器,但该函数只是从我的全局变量中给出值 alpha,该变量正在被主计时器修改。这样我就可以让所有圈子同步
如果有人知道如何用 animate 做到这一点,欢迎回答。
我已经将代码和解决方案上传到 Github。