后顶部我有动力单元的高度在我的tableView的UITableView动态细胞高度滚动调用reloadData
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 100
我想要做的一样WhatsApp的应用程序(分页),我想加载25 25行,所以当在顶部的用户滚动,我想加载新的数据,但我想保持滚动的同一位置,这里是我做过什么
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if isMore && scrollView.contentOffset.y == 0 {
loadMore() // function that add new data in my model
self.tableView.reloadData()
}
}
我已经是后我达到我的tableview的顶部它调用reloadData但问题tableView滚动到UP
我测试器这样的一些其他的解决方案:
var cellHeights: [IndexPath : CGFloat] = [:]
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
cellHeights[indexPath] = cell.frame.size.height
}
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
guard let height = cellHeights[indexPath] else { return 70.0 }
return height
}
但仍然没有工作
默认情况下,表视图上的'.reloadData()'不会**改变表的滚动位置。也许在你的'loadMore()'或其他一些函数正在改变表视图属性? – DonMag
是的,因为我使用动态单元格高度UITableViewAutomaticDimension – OuSS
嗯...你说*“当用户滚动顶部,我想加载新的数据”* ...所以你想添加行上面的第零行? – DonMag