Programing

didSelectRowAtIndexPath에서 현재 선택한 셀에 도달하는 방법은 무엇입니까?

lottogame 2020. 11. 17. 07:37
반응형

didSelectRowAtIndexPath에서 현재 선택한 셀에 도달하는 방법은 무엇입니까?


메서드를 통해 셀의 액세서리보기 유형을 변경하고 싶습니다 : didSelectRowAtIndexPath, 즉 행이 선택 될 때 액세서리보기 유형을 변경하고 싶습니다. 해당 메서드 내에서이 작업을 수행 할 수 있습니까?


다음 과 같이 indexPath를 사용하여 didSelectRowAtIndexPath : 메소드 에서 셀을 가져올 수 있습니다 .

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

Swift 3.0 : 필요에 따라 다음 두 가지 방법을 사용할 수 있습니다.

 let cell:UITableViewCell = tableView.cellForRow(at: indexPath) as UITableViewCell

또는

let cell:CustomTableViewCell = tableView.cellForRow(at: indexPath) as! CustomTableViewCell

해피 코딩 !!


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
     UITableViewCell *myCell = [tableView cellForRowAtIndexPath:indexPath];
     // Access accessory View  as below.  
     UIView * myCellAccessoryView = myCell.accessoryView;
}

아래 함수를 사용하여 선택한 행의 인덱스 경로를 전달하여 특정 셀이 다시로드되도록합니다.

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

또 다른 해결책은 선택한 행 인덱스를 저장하고 테이블 뷰를 다시로드하는 것입니다. 그런 다음 cellForRowAtIndexPath선택한 행 확인하고 셀의 액세서리보기를 변경합니다.


빠른

다음과 같이 indexPath를 사용하여 didSelectRowAtIndexPath : 메소드에서 셀을 가져올 수 있습니다.

 let cell:UITableViewCell? = tableView.cellForRowAtIndexPath(indexPath)

선택한 인덱스 경로를 저장합니다. 예 : NSInteger selectedIndexPath; 그런 다음 아래 단계를 따르십시오. 액세서리보기를 설정합니다.

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
    AddressTableViewCell *cell=(AddressTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    cell.backgroundColor=[UIColor lightGrayColor];

    Address *addr=[self.locationArray objectAtIndex:indexPath.row];

    cell.titleLabel.text = addr.addressTitle;
    cell.detailLabel.text = addr.addressDetail;

        if (indexPath.row == selectedIndexPath) {
            [cell.selectButton setImage:[UIImage imageNamed:@"checkboxFilled"] forState:UIControlStateNormal];
        }
        else {
            [cell.selectButton setImage:[UIImage imageNamed:@"checkbox"] forState:UIControlStateNormal];

        }

    return cell;
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    selectedIndexPath=indexPath.row;

    [self.tableView reloadData];

}

참고 URL : https://stackoverflow.com/questions/6547065/how-to-reach-the-current-selected-cell-in-didselectrowatindexpath

반응형