滚动到iOS 11中的表格视图顶部

时间:2017-10-09 02:19:23

标签: uitableview uiscrollview ios11

我有一个表视图,我希望它在第一次出现时始终滚动到顶部。以下代码用于工作正常但在iOS 11中不再执行任何操作。如何滚动到iOS 11中表格视图的顶部?

- (void)viewWillAppear:(BOOL)animated
{
    [self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];    
}

2 个答案:

答案 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中。