我正在使用TLIndexPathCollapsible。 链接:https://github.com/wtmoose/TLIndexPathTools
现在我有2个部分(A和B),每个部分有3行(a b c)。如果我扩展A和B并使用它:
NSInteger rowNumber = 0;
for (NSInteger i = 0; i < indexPath.section; i++) {
rowNumber += [self tableView:tableView numberOfRowsInSection:i];
NSLog(@"number: %ld",(long)rowNumber);
NSLog(@"rows in previous section %ld",(long)[tableView numberOfRowsInSection:i]);
}
rowNumber += indexPath.row;
有效。
但是,当我折叠A部分并点击(B部分a行)时。因为前一部分(部分A)已折叠且因此没有行,所以它返回0。 我正在使用一个数组来存储。 如何遍历A部分和+ 1以获得indexPath.row = 3?
答案 0 :(得分:0)
TLIPT的想法是使用TLIndexPathDataModel
来存储数据项,然后使用TLIndexPathDataModel
API可以轻松地将indexPaths转换为数据项,反之亦然。因此,如果您正在使用TLCollapsibleTableViewController
,则可以执行以下操作:
id myDataItem = [self.indexPathController.dataModel itemAtIndexPath:indexPath];
如果需要在外部数组中找到索引,则可以执行以下操作:
NSInteger index = [myArray indexOfObject:myDataItem];