Xiang
Xiang

Reputation: 33

When I invoke the func "reloadData()" of UITableView.The controller will flash

I use an UITableView with autoLayout cell and set "UITableView.automaticDimension". When I invoke the function "reloadData()" the controller will flash.

Upvotes: 1

Views: 50

Answers (1)

Sean
Sean

Reputation: 490

try this may help you:

let offset = self.tableView.contentOffset
let yOffset = offset.y
self.tableView.reloadData()

DispatchQueue.main.async {

        let maxOffset = self.tableView.contentSize.height - self.tableView.bounds.height

        if yOffset > maxOffset {
            self.tableView.layoutIfNeeded()
            self.tableView.setContentOffset(CGPoint(x: Metric.zero, y: maxOffset), animated: false)
        } else if yOffset > Metric.zero {
            self.tableView.layoutIfNeeded()
            self.tableView.setContentOffset(offset, animated: false)
        }
    }

Upvotes: 1

Related Questions