Uitableview 在iOS 11中滚动至表格顶部视图
我有一个表视图,我希望它第一次出现时总是滚动到顶部。以下代码过去工作正常,但在iOS 11中不再起任何作用。如何在iOS 11中滚动到表视图的顶部Uitableview 在iOS 11中滚动至表格顶部视图,uitableview,uiscrollview,ios11,Uitableview,Uiscrollview,Ios11,我有一个表视图,我希望它第一次出现时总是滚动到顶部。以下代码过去工作正常,但在iOS 11中不再起任何作用。如何在iOS 11中滚动到表视图的顶部 - (void)viewWillAppear:(BOOL)animated { [self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO]; } 由于它在视图中将出现,我怀疑您是否在错误的位置执行此操作(因为视图和表尚未显示)。尝试在视图中执行此操作
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
}
由于它在
视图中将出现
,我怀疑您是否在错误的位置执行此操作(因为视图和表尚未显示)。尝试在视图中执行此操作
在我这方面,当我将[self.tableView scrollRectToVisible:CGRectMake(0,0,1,1)animated:NO]
连接到iAction时,它会尽职尽责地移动到表中的第一个(或第0个)单元格(不设置滚动动画),因此该调用肯定在iOS 11中仍然有效 您可以使用scrollToRowAtIndexPath
方法
作为-
ObjC
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:true];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:true];
}
SWIFT 4
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: UITableViewScrollPosition.top, animated: true)
}
您还可以在indepath
中设置自定义行,方法是放置各种行和节值 是的,它在-viewdide:
中工作,但我希望在表视图出现之前将其滚动到顶部。这在iOS 11中似乎被破坏了。这实际上会滚动到最上面一行,但是如果tableview本身有一个标题,这就不起作用了,因为它会滚动到第一行并隐藏标题。