如何获得先前的细胞计数

时间:2016-12-06 18:12:48

标签: ios swift uitableview

如何检索UITableView的上一个单元格(//send http request function sendRequest(url) { var newRequest = new XMLHttpRequest(); newRequest.onreadystatechange = function() { if(newRequest.readyState == 4) { if(newRequest.status == 200) { console.log("loaded: " + url); } else { console.log("Failed to load: " + url); } } } newRequest.open("HEAD", url); newRequest.send(); } //send request for each url in array for(var i = 0; i < urlArray.length; i++) { //get document id and append to link var address = "https://www.adsa.co.uk/library.dr/docs.aspx?id=" + urlArray[i]; //console.log(address + "\n"); sendRequest(address); } 内部)的计数,包括其他部分?

在这种情况下,在&#34; ok2&#34;之前有六个单元格。单元格(选定的单元格)。 enter image description here

2 个答案:

答案 0 :(得分:0)

使用表格视图的visibleCells方法获取屏幕上的单元格数组。

然后使用indexPathForCell将这些单元格映射到indexPath值。最后,向后遍历indexPaths数组,查找当前的indexPath。找到后,靠近数组开头的所有indexPath都代表在cellForRowAtIndexPath:

中设置的单元格上方的屏幕上单元格

编辑:

实际上,最好使用表格视图方法indexPathsForVisibleRows。这将一步为您提供indexPaths。

如果你想为每个单元格提供单个数字索引,那么它将是人为的。单元格由indexPath编号,其中节号是最重要的值,然后单元格按节中的行排序。

如果你想要一个数字索引,你可以这样做:

let maxRowsPerSection = 100 //Change to reflect the actual max rows/section

let indexPaths = tableView.indexPathsForVisibleRows
let indexValues = indexPaths.map{$0.section * maxRowsPerSection + $0.row}

通过对maxRowsPerSection使用值100,您将获得最后2位代表行号的数字,而数百位数字和上方代表节号。如果你可能有&gt;您需要增加maxRowsPerSection的值的部分中的100行。

答案 1 :(得分:0)

希望能帮助任何人找到答案:

var partialSections = 0;
var i = 0
for (i = 0; i < indexPath.section; i += 1) {

    let rowsInSection = self.tableView(self.tableView, numberOfRowsInSection: i)
    partialSections += rowsInSection;
}
let currentRow = partialSections + indexPath.row;

print(currentRow)