获取UITableView的选定索引


104

我想为选择索引UITableView。我写了以下代码:

NSIndexPath *index = [NSIndexPath indexPathForRow:1 inSection:0];
[tableView scrollToRowAtIndexPath:index 
                 atScrollPosition:UITableViewScrollPositionTop 
                         animated:YES];

这始终适用于第一项。我想在其中选择索引indexPathForRow.

请帮忙。谢谢。

Answers:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
如果允许多个选择,请考虑使用:-(NSArray *)indexPathsForSelectedRows
yura

一旦你有*selectedIndexPath我有机会获得它是有用的long pathRow = [selectedIndexPath row];,并long pathSection = [selectedIndexPath section];当您需要特定的选择(注意,NSIntegertypedef long从一个C的背景来使,因为双方都需要更多的意义%ld呢。
乔纳森·温劳布

8

获取当前选中的行。如果您只有一个部分,可能会有所帮助。

- (NSUInteger)currentSellectedRowIndex
{
    NSIndexPath *selectedIndexPath = [self.tableView indexPathForSelectedRow];
    if (selectedIndexPath) {
        return selectedIndexPath.row;
    }
    else {
        return NSNotFound;
    }
}

5

使用此代码

CGPoint location =[sender locationInView:self.tableView];
NSIndexPath *swipedIndexPath = [self.tableView indexPathForRowAtPoint:location];
UITableViewCell *swipedCell  = [self.tableView cellForRowAtIndexPath:swipedIndexPath];
NSIndexPath *indexPath = [self.tableView indexPathForCell:swipedCell];

4

在didSelectRowAtIndexPath中,将一个声明为NSIndexPath的接口设置为返回的索引路径。然后,您可以滚动到该变量。如果您需要帮助,请发表评论,我可以提供一些示例代码。


另外,您可以使用克里斯的方法更快地使用。上面的方法提供了更多控制,并且可以由您的(示例)详细视图控制器进行修改。
Kolin Krewinkel

1

斯威夫特4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

这是一个可选的返回值。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.