假设我有一个20行(á44px)的列表。如果我使用此代码:
tableView.scrollToRow(at: IndexPath(item: 5, section: 0), at: UITableViewScrollPosition.top, animated: false)
正确滚动TableView,以便第五行位于屏幕顶部。
如果我对项目18
执行相同操作:
tableView.scrollToRow(at: IndexPath(item: 18, section: 0), at: UITableViewScrollPosition.top, animated: false)
然后tableView也“正确”滚动,以便第十八行粘在屏幕顶部 - 仅显示第18,19和20行,然后显示第20行下方的大量空间。
只要用户以任何方式触摸tableView,内容就会快速快照,以便第20行触及屏幕底部。这个状态,其中20位于底部,是我想要首先发生的事情。当我要求tableView将第18行滚动到屏幕顶部时,我希望它只执行 ,如果这是tableView的自然滚动位置,或者只是滚动到底部的的tableView。
使用animated:true
时,想要/期望的状态有效,但在使用animated:false
时不起作用 - 我需要保持假(因为我需要在用户时将tableView滚动到此位置)进入这个viewController)。