我有一个表视图,我希望它在第一次出现时始终滚动到顶部。以下代码用于工作正常但在iOS 11中不再执行任何操作。如何滚动到iOS 11中表格视图的顶部?
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
}
答案 0 :(得分:12)
您可以使用scrollToRowAtIndexPath
方法
as -
<强> 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)
}
您还可以通过放置各种行和放大器来设置indexpath
中的自定义行。部分价值。
答案 1 :(得分:0)
在viewWillAppear
中看到它,我想知道你是否在错误的地方这样做(因为视图和表尚未显示)。尝试在viewDidAppear
中执行此操作。
就我而言,当我将[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated: NO]
连接到IBAction时,它尽职尽责地移动到表格中的第一个(或第0个)单元格(没有动画滚动),因此该调用肯定仍然有效在iOS 11中。