我正在尝试每秒使用新的数据源重新加载Tableview,但是重新加载过程中会出现轻微的闪烁,这对于用户是显而易见的。
我每秒刷新一次数据源的要求是,因为我每秒都会从API获得新的服务器时间。
我使用以下不同方法重新加载tableView的3个部分,但现在似乎没有闪烁的体验。
方法1
UIView.performWithoutAnimation {
UIView.setAnimationsEnabled(false)
weakSelf.tradeTableView.reloadSections([0,1,2], with: .none)
}
方法2
UIView.setAnimationsEnabled(false)
weakSelf.tradeTableView.beginUpdates()
weakSelf.tradeTableView.reloadSections([0,1,2], with: .none)
weakSelf.tradeTableView.endUpdates()
UIView.setAnimationsEnabled(true)
两种方法都提供闪烁的体验。
答案 0 :(得分:0)
它是闪烁还是跳跃?
如果滚动视图跳转,请检查以下答案Jumpy tableview after reload
答案 1 :(得分:0)
这个这个
let loc = tradeTableView.contentOffset // this line is added to lock offset of tableview
UIView.performWithoutAnimation {
tradeTableView.beginUpdates()
tradeTableView.reloadData()
tradeTableView.endUpdates()
tradeTableView.layer.removeAllAnimations()
tradeTableView.setContentOffset(loc, animated: false)
}
答案 2 :(得分:0)
您可以尝试
UIView.setAnimationsEnabled(false)
self.tradeTableView.beginUpdates()
self.tradeTableView.endUpdates()
UIView.setAnimationsEnabled(true)