UITableView移动到单元格

时间:2012-04-22 16:06:01

标签: ios uitableview

我想做下一个:

我有一个UITableView,必须显示单词(A-Z)。

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

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

什么是正确的等待从1到10细胞过渡。

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

换句话说,我需要制作scrollToRowAtIndexPath

谢谢!

3 个答案:

答案 0 :(得分:85)

您确定scrollToRowAtIndexPath方法是正确的。所以你需要做的就是创建一个新的IndexPath,其中包含你想要移动的行,例如,row index = 10:

[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:10 inSection:indexPath.section] 
             atScrollPosition:UITableViewScrollPositionMiddle animated:NO];

答案 1 :(得分:5)

//For iOS 7 
        [self.TableView reloadData];
        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:1];
        [TableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES];

答案 2 :(得分:2)

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

let moveToIndexPath = NSIndexPath(forRow: forRow, inSection: 0)
self.tableView.reloadRowsAtIndexPaths([moveToIndexPath], withRowAnimation: .None)
self.tableView.scrollToRowAtIndexPath(moveToIndexPath, atScrollPosition: atScrollPosition, animated: true)