我有一个包含多个部分的UITableView。我没有使用每个部分使用数组的典型方法,而是使用一个数组。无论如何,我在获取当前的indexPath.row时遇到了麻烦,好像在tableview中只有一个部分。
所以我要做的就是如下。如果部分== 0,我只使用indexPath.row,但是如果部分是> 0,我想要添加上一节中的所有行,并获取当前节中的当前行以获取总行数AS如果TABLEVIEW只有一个部分。
这是我目前的代码,它只是没有成功,也许你们会看到我做错了什么。请让我知道:
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;
}
答案 0 :(得分:11)
首先你不需要第一个,因为它不会通过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;
答案 1 :(得分:0)
这是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;
答案 2 :(得分:0)
这是我目前在Swift 4中使用的适用于我的方法
var currentRow = 0
for section in 0..<indexPath.section {
let rows = self.tableView.numberOfRows(inSection: section)
currentRow += rows
}
currentRow += indexPath.row