我想做下一个:
我有一个UITableView,必须显示单词(A-Z)。
目前,当视图加载时,我有一个显示的单元格(这是正确的)。第一个单元格显示我的数组单词中的第一个单词。
目的: 我想移动到必须在我的数组中显示10个单词的单元格,但问题是indexPath.row = 10的单元格不存在(这是正确的,因为我还没有滚动)。
什么是正确的等待从1到10细胞过渡。
我认为如果我不使用dequeueReusableCellWithIdentifier
创建我的单元格,我可以做到并解决我的问题,但我的意思是设备内存存在这个问题。
换句话说,我需要制作scrollToRowAtIndexPath
谢谢!
答案 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)