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

时间:2017-10-23 03:29:51

标签: ios swift uitableview

我有一个UITableView,如果我稍微滚动内容然后调用reloadData,那么当重新加载数据时,表格会显示为滚动动画。

enter image description here

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()。有什么想法为什么会出现这个动画?我能做些什么来阻止它?

2 个答案:

答案 0 :(得分:0)

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

 tableView.contentOffset = .zero

答案 1 :(得分:0)

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

close()