ios - 如何确保具有重复动画的 UITableView 标题单元格子视图在重新加载数据、用户滚动等之后继续动画?
问题描述
我有一个带有标题单元格的 ViewController 运行良好,除了标题单元格中的一个视图有一个重复动画,当在视图控制器中设置特定条件时,它应该继续无休止地制作动画。我有时可以在 viewDidLoad 中成功启动动画,并在我的处理程序中重新启动它以获取 .appDidBecomeActive 通知。但是,当用户滚动或拉动以刷新 tableview 数据时,动画会停止。我确实覆盖了 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 通知以重新启动动画。
推荐阅读
- css - CSS 导航:并排的两个子菜单
- php - 多维数组上的递归函数
- google-analytics - Google Analytics 显示 0 个用户
- javascript - Shadow DOM 使用什么 CSS 选择器?
- perl - Perl XML::LibXML XPath 2.0 到 XPath 1.0
- php - 表 ci_session 不存在错误
- c# - 是否有可能在 asp.net mvc 5 代码优先方法中有一个可以容纳多个字符串的表列?
- dart - 谷歌登录 - Flutter
- java - 来自java的expdp命令
- google-drive-api - 使用 google drive 将视频流式传输到 html5 播放器