hyd*_*d00 13 objective-c uitableview didselectrowatindexpath ios
我有一个UITableView
,其中有多个部分,每个部分有多行.我想获得相对于整个表而不是部分的所选单元格的行号.
例:
UITableView
,第1部分有3行,第2部分有5行.didSelectRowAtIndexPath
方法中得到5作为行号,而不是将2作为行号(相对于该部分).我尝试通过执行以下操作来获取行号,但它似乎不起作用:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *selectedCell = [tableView cellForRowAtIndexPath:indexPath];
NSLog(@"%d",indexPath.row);
int theRow = indexPath.row;
NSLog(@"%d",theRow);
}
Run Code Online (Sandbox Code Playgroud)
我想将行号存储在int
变量中,然后自己添加行号,但是在尝试存储时代码崩溃 indexpath.row
了theRow
.
请帮忙.谢谢
Wai*_*ain 44
NSInteger rowNumber = 0;
for (NSInteger i = 0; i < indexPath.section; i++) {
rowNumber += [self tableView:tableView numberOfRowsInSection:i];
}
rowNumber += indexPath.row;
Run Code Online (Sandbox Code Playgroud)
这是Wain对上述答案的Swift改编
class func returnPositionForThisIndexPath(indexPath:NSIndexPath, insideThisTable theTable:UITableView)->Int{
var i = 0
var rowCount = 0
while i < indexPath.section {
rowCount += theTable.numberOfRowsInSection(i)
i++
}
rowCount += indexPath.row
return rowCount
}
Run Code Online (Sandbox Code Playgroud)
这是Swift中这个概念的更清晰的实现:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) ->
var rowNumber = indexPath.row
for i in 0..<indexPath.section {
rowNumber += self.tableView.numberOfRowsInSection(i)
}
// Do whatever here...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24095 次 |
最近记录: |