ios 获取当前具有多个节的indexPath行?

nzrxty8p  于 2023-04-22  发布在  iOS
关注(0)|答案(4)|浏览(147)

我有一个UITableView有多个节。而不是使用每个节一个数组的典型方法,我使用一个数组。无论如何,我在获取当前indexPath.row时遇到了麻烦,好像tableview中只有一个节。
如果section == 0,我就使用indexPath.row,但是如果section〉0,我想把上一节的所有行加起来,并在当前节中获取当前行,以获取总行数,就好像TABLEVIEW只是一个SECTION。
这是我目前的代码,它只是不工作,也许你们会看到我做错了什么。请让我知道:

if (indexPath.section == 0) {
        currentRow = indexPath.row;
    } else {
        NSInteger sumSections = 0;
        for (int i = 0; i < indexPath.section; i++) {
            int rowsInSection = [activitiesTable numberOfRowsInSection:i] + 1;
            sumSections += rowsInSection;
        }
        NSInteger row = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section].row + 1;
        currentRow = sumSections + row;
    }
fjaof16o

fjaof16o1#

下面是我目前在Swift 4中使用的方法,它对我很有效

var currentRow = 0
for section in 0..<indexPath.section {
        let rows = self.tableView.numberOfRows(inSection: section)
        currentRow += rows
}

currentRow += indexPath.row
oalqel3c

oalqel3c2#

这是Swift 4的版本。

var currentIndex = 0
var sumSections = 0;

for index in 0..<indexPath.section {
    let rowsInSection = self.tableView.numberOfRows(inSection: index)
    sumSections += rowsInSection
}

currentIndex = sumSections + indexPath.row;
a6b3iqyw

a6b3iqyw3#

要查找索引,请执行以下操作:

var index = indexPath.row
for section in 0..<indexPath.section {
     index += self.tableView.numberOfRows(inSection: section)
}
3okqufwl

3okqufwl4#

首先你不需要第一个if,因为它不会通过for-next运行。然后你添加一个不必要的,然后你可以像这样添加indexPath.row:

NSInteger sumSections = 0;
    for (int i = 0; i < indexPath.section; i++) {
        int rowsInSection = [activitiesTable numberOfRowsInSection:i];
        sumSections += rowsInSection;
    }
    currentRow = sumSections + indexPath.row;

相关问题