【问题标题】:Reloading the Tableview section after every second is causing flickering每秒重新加载 Tableview 部分会导致闪烁
【发布时间】:2019-05-07 07:35:07
【问题描述】:

我正在尝试每秒用新的数据源重新加载我的 Tableview,但是在重新加载时会有轻微的闪烁,用户可以清楚地看到。

我要求每秒刷新一次数据源是因为我每秒都从 API 获取新的服务器时间。

我使用以下不同的方法重新加载了我的 tableView 的 3 个部分,但现在似乎提供了无闪烁的体验。

方法一

 UIView.performWithoutAnimation {
                UIView.setAnimationsEnabled(false)
                weakSelf.tradeTableView.reloadSections([0,1,2], with: .none)
            }

方法二

      UIView.setAnimationsEnabled(false)
      weakSelf.tradeTableView.beginUpdates()
      weakSelf.tradeTableView.reloadSections([0,1,2], with: .none)
      weakSelf.tradeTableView.endUpdates()
      UIView.setAnimationsEnabled(true)

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

【问题讨论】:

  • 为什么你需要每秒更新你的部分?
  • 正如我所提到的,我每秒从服务器获取更新的服务器时间,这就是为什么我需要更新 tableview 部分以反映这些更改。
  • 如果您只添加数据,您可以插入行而不是重新加载所有数据。
  • 嗨 Samarth 可以在 performWithoutAnimation 块中尝试 tradeTableView.layer.removeAllAnimations(),我也更喜欢使用 rxswift 来处理这种事情,因为你每秒都在重新加载 tableview,这并不好,希望它有所帮助:P
  • @ShivamGaur 我收到了使用 RxSwift 的建议,请您指导我

标签: ios swift uitableview


【解决方案1】:

是闪烁还是跳跃?

如果滚动视图跳转检查这些答案Jumpy tableview after reload

【讨论】:

    【解决方案2】:

    这个这个

                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)
                } 
    

    【讨论】:

      【解决方案3】:

      你可以试试这个

              UIView.setAnimationsEnabled(false)
              self.tradeTableView.beginUpdates()
              self.tradeTableView.endUpdates()
              UIView.setAnimationsEnabled(true)
      

      【讨论】:

        猜你喜欢
        • 2013-10-08
        • 1970-01-01
        • 1970-01-01
        • 2013-02-18
        • 2013-01-20
        • 2023-03-15
        • 1970-01-01
        • 2021-11-09
        • 1970-01-01
        相关资源
        最近更新 更多