在 iOS 11 中滚动到 table 视图的顶部
Scroll to top of table view in iOS 11
我有一个 table 视图,我希望它在第一次出现时始终滚动到顶部。以下代码过去工作正常,但在 iOS 11 中不再执行任何操作。如何在 iOS 11 中滚动到 table 视图的顶部?
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
}
看到它在 viewWillAppear
中,我想知道您是否在错误的地方这样做(因为视图和 table 尚未显示)。尝试在 viewDidAppear
.
中执行此操作
在我这边,当我将 [self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated: NO]
连接到 IBAction 时,它尽职尽责地移动到 table 中的第一个(或第 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)
}
您还可以在 indexpath
中设置自定义行,方法是放置各种行和部分值。
我有一个 table 视图,我希望它在第一次出现时始终滚动到顶部。以下代码过去工作正常,但在 iOS 11 中不再执行任何操作。如何在 iOS 11 中滚动到 table 视图的顶部?
- (void)viewWillAppear:(BOOL)animated
{
[self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];
}
看到它在 viewWillAppear
中,我想知道您是否在错误的地方这样做(因为视图和 table 尚未显示)。尝试在 viewDidAppear
.
在我这边,当我将 [self.tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated: NO]
连接到 IBAction 时,它尽职尽责地移动到 table 中的第一个(或第 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)
}
您还可以在 indexpath
中设置自定义行,方法是放置各种行和部分值。