UITableView의 선택된 인덱스 가져 오기


104

에 대한 색인을 선택하고 싶습니다 UITableView. 다음 코드를 작성했습니다.

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

이것은 항상 첫 번째 항목에서 작동합니다. 색인을 선택하고 싶습니다.indexPathForRow.

도와주세요. 감사.

답변:


216
NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

5
다중 선택을 허용하는 경우 다음을 사용하는 것이 좋습니다.-(NSArray *) indexPathsForSelectedRows
yura

당신은 일단 *selectedIndexPath나에 액세스하는 것이 유용합니다 long pathRow = [selectedIndexPath row];그리고 long pathSection = [selectedIndexPath section];당신은 (주 특정 선택을 필요로 할 때 NSIntegerA는 typedef long는 C의 배경에서 오는 어떤이 모두 필요하기 때문에 더 의미가 %ld어쨌든.
조나단 Weinraub

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로 선언 된 인터페이스를 반환 된 indexpath로 설정합니다. 그런 다음 해당 변수로 스크롤 할 수 있습니다. 도움이 필요하면 댓글을 달면 샘플 코드를 줄 수 있습니다.


또는 Chris의 방법을 사용하여 더 빨리 사용할 수 있습니다. 위의 방법은 더 많은 제어를 제공하며 (예제) 상세보기 컨트롤러로 수정할 수 있습니다.
Kolin Krewinkel

1

스위프트 4.2

let selectedIndexPath = tableView.indexPathForSelectedRow

선택적 반환 값입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.