调用reloadData时,UITableView会产生不需要的动画

我有一个UITableView,如果我稍微滚动内容,然后调用reloadData ,表格会在重新加载数据时进行滚动动画。

在此处输入图像描述

viewDidLoad调用的表设置:

 func setupTableView() { tableView.register(UINib(nibName: "AnswerCell", bundle: nil), forCellReuseIdentifier: "AnswerCell") tableView.register(UINib(nibName: "QuizDescription", bundle: nil), forCellReuseIdentifier: "QuizDescription") tableView.register(UINib(nibName: "QuestionNumberCell", bundle: nil), forCellReuseIdentifier: "QuestionNumberCell") tableView.tableFooterView = UIView() tableView.estimatedRowHeight = 135 tableView.rowHeight = UITableViewAutomaticDimension tableView.delegate = self tableView.dataSource = self } 

按下提交按钮时,将调用tableView.reloadData() 。 有什么想法为什么会出现这个动画? 我能做些什么来阻止它?

在调用reloadData之前,您需要先重置位置。

  tableView.contentOffset = .zero 

您可以尝试在performWithoutAnimation: block中重新加载tableview:

 UIView.performWithoutAnimation { self.tableView.reloadData() }