Uitableview 在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]; } 由于它在视图中将出现,我怀疑您是否在错误的位置执行此操作(因为视图和表尚未显示)。尝试在视图中执行此操作

我有一个表视图,我希望它第一次出现时总是滚动到顶部。以下代码过去工作正常,但在iOS 11中不再起任何作用。如何在iOS 11中滚动到表视图的顶部

- (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本身有一个标题,这就不起作用了,因为它会滚动到第一行并隐藏标题。