调用 reloadData 时 UITableView 有不需要的动画
Posted
技术标签:
【中文标题】调用 reloadData 时 UITableView 有不需要的动画【英文标题】:UITableView has unwanted animation when reloadData is called 【发布时间】:2017-10-23 03:29:51 【问题描述】:我有一个 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()
被调用。任何想法为什么会发生这个动画?我能做些什么来阻止它?
【问题讨论】:
你解决了吗?我有同样的问题 【参考方案1】:您需要先重置位置,然后再调用reloadData
。
tableView.contentOffset = .zero
【讨论】:
试过这个。虽然仍然有动画效果。【参考方案2】:您可以尝试在performWithoutAnimation: 块中重新加载tableview:
UIView.performWithoutAnimation
self.tableView.reloadData()
【讨论】:
以上是关于调用 reloadData 时 UITableView 有不需要的动画的主要内容,如果未能解决你的问题,请参考以下文章
调用函数reloadData时如何对UITableView进行swap效果
集合单元在每个 reloadData() 调用 Swift 5 时删除项目
UICollectionView 在调用 reloadData 时不会立即更新,而是在 30-60 秒后随机更新