tableView visibleCells swift上缺少单元格

Posted

技术标签:

【中文标题】tableView visibleCells swift上缺少单元格【英文标题】:missing cell on tableView visibleCells swift 【发布时间】:2018-11-15 13:25:25 【问题描述】:

当我滚动到 tableView 中的第二行后在 tableView 中看到可见单元格时,它给我一个单元格丢失了 8 个单元格,它给我 7 个单元格这是我的代码

if response.count > 1
    
        let index = IndexPath(row: 1, section: 0)
        self.tableView.scrollToRow(at: index, at: .top, animated: false)
    
    if let _ = self.tableView 
        let cells = self.tableView.visibleCells
        UIView.animate(views: cells, animations: [], reversed: false, initialAlpha: 0, finalAlpha: 1, delay: 0, animationInterval: 0.1, duration: ViewAnimatorConfig.duration, options: UIView.AnimationOptions.allowAnimatedContent, completion: nil)
    

【问题讨论】:

很可能,因为您没有等待表格视图实际滚动到第 1 行,self.tableView.visibleCells 正在返回第 0 到第 7 行。 我怎么能等待滚动? 【参考方案1】:

我没有您正在使用的“ViewAnimator”,所以我无法对其进行测试,但是这个应该适合您:

    if response.count > 1 

        let index = IndexPath(row: 1, section: 0)
        self.tableView.scrollToRow(at: index, at: .top, animated: false)

        UIView.animate(withDuration: 0.1, animations: 
            self.tableView.layoutIfNeeded()
        , completion: 
            _ in

            let cells = self.tableView.visibleCells

            // un-comment to output the array of visible cells
            // to debug console to confirm the desired rows are visible
            //print(cells)

            UIView.animate(views: cells, animations: [], reversed: false, initialAlpha: 0, finalAlpha: 1, delay: 0, animationInterval: 0.1, duration: ViewAnimatorConfig.duration, options: UIView.AnimationOptions.allowAnimatedContent, completion: nil)
        )

    

【讨论】:

以上是关于tableView visibleCells swift上缺少单元格的主要内容,如果未能解决你的问题,请参考以下文章

UITableView.visibleCells.contains(JDHeaderTableViewCell()) 总是返回 false

UITableView 函数 visibleCells 是不是返回自定义单元格数据?

ios开发之--UITableView中的visibleCells的用法

如何在不重新加载 visibleCell 的情况下在 collectionView 上重新加载数据

如何使用 SWrevaelviewController swift 3 将数据从 tableview 的特定行传递到另一个视图控制器

点击tableview内的collectionview单元格导航