ios - 如何确保具有重复动画的 UITableView 标题单元格 subview 在 reloadData、用户滚动等之后继续动画?

标签 ios swift uiviewanimation

我有一个带有标题单元格的 ViewController,该单元格运行良好,但标题单元格中的一个 View 具有重复动画,当在 View Controller 中设置特定条件时,该动画应该继续无休止地动画。我有时可以在 viewDidLoad 中成功启动动画,并在 .appDidBecomeActive 通知的处理程序中重新启动它。但是,当用户滚动或拉动刷新表格 View 数据时,动画就会停止。我确实重写了scrollViewDidEndDragging和scrollViewDidEndDecelerating方法来重新启动它,但它实际上并不能可靠地重新启动动画。线索?

        UIView.animate(withDuration: 2.0,
                       delay: 0.0,
                       options: [.curveEaseInOut, .autoreverse, .repeat, .beginFromCurrentState],
                       animations: { self.headerCellAnimatedSubview?.alpha = 1.0 },
                       completion: { _ in  self.headerCellAnimatedSubview?.alpha = 0.0 }
        )

最佳答案

经过一些帮助,我发现将动画调用添加到 UITableViewHeaderCell 类的 didMoveToWindow 重写中,动画将在滚动后重新启动。然而,正如预期的那样,当应用程序从后台返回时,我还必须响应 appDidBecomeActive 通知来重新启动动画。

关于ios - 如何确保具有重复动画的 UITableView 标题单元格 subview 在 reloadData、用户滚动等之后继续动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57083235/

相关文章:

swift - 以编程方式将约束添加到 Storyboard 上的现有 View

iOS >> 动画 block >> 更改 block 执行的 Moving ImageView 方向 'In the Middle'

ios - iPhone 6 Plus 的 NSLayoutConstraint

ios - 如果属性值匹配,UIView aniamteWithDuration 是否退出

objective-c - NSData 编码为 Unicode 返回 nil

ios - 我在 Swift 应用程序中的哪里存储文件选项?

ios - 不同的类有相似的方法

ios - "modifying layer that is being finalized"弹出导航 Controller 时出错

objective-c - 基于 UIView block 的动画重绘

ios - 首次启动时未收到推送通知