42

我想做下一个:

我有一个必须显示单词(AZ)的 UITableView。

目前,当视图确实加载时,我显示了一个单元格(这是正确的)。第一个单元格显示我的数组单词中的第一个单词。

目的:我想移动到必须从我的数组中显示 10 个单词的单元格,但问题是 indexPath.row = 10 的单元格不存在(这是正确的,因为我还没有滚动)。

什么是从 1 到 10 单元转换的正确等待。

我想如果我不使用dequeueReusableCellWithIdentifier创建我的单元格,我可以这样做并解决我的问题,但我的意思是设备内存的这个问题。

换句话说我需要做scrollToRowAtIndexPath

谢谢!

4

3 回答 3

86

您确定scrollToRowAtIndexPath方法是正确的。因此,您需要做的就是使用您希望移动到的行创建一个新的 IndexPath,例如,行索引 = 10:

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:10 inSection:indexPath.section] 
             atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
于 2012-04-22T17:39:29.587 回答
6
//For iOS 7 
[self.TableView reloadData];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:1];
[TableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];
于 2013-12-03T13:32:55.207 回答
2

可以识别需要使其可见的行(例如下面的 forRow)并重新加载该行。完成后,可以滚动到该行。

let moveToIndexPath = NSIndexPath(forRow: forRow, inSection: 0)
self.tableView.reloadRowsAtIndexPaths([moveToIndexPath], withRowAnimation: .None)
self.tableView.scrollToRowAtIndexPath(moveToIndexPath, atScrollPosition: atScrollPosition, animated: true)
于 2015-12-14T14:57:17.493 回答