每秒重新加载Tableview部分会导致闪烁

时间:2019-05-07 07:35:07

标签: ios swift uitableview

我正在尝试每秒使用新的数据源重新加载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)

两种方法都提供闪烁的体验。

3 个答案:

答案 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)