2012-01-21 2 views
0

어리석은 질문 일 수 있습니다.사용자 지정 UITableview에서 셀 선택시 데이터를 검색하는 방법

여러 개의 셀이있는 UITableview가 있습니다. 각 셀에 일부 데이터가 표시됩니다. 데이터를 표시하는 데 셀의 텍스트 속성을 사용하지 않습니다. 대신 텍스트를 표시하는 셀에 맞춤 레이블이 있습니다. 내 질문 : 셀을 클릭하면 셀에서 데이터를 검색해야합니다. 어떻게해야합니까? -tableView:didSelectRowAtIndexPath: 방법에서

if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 


    UILabel *CellTextlabel = [[UILabel alloc] init]; 
    CellTextlabel.tag = 222; 
    [CellTextlabel setFrame:CGRectMake(40, 5, 200, 20)]; 
    [cell.contentView addSubview:CellTextlabel]; 
    [CellTextlabel release]; 
    } 


UILabel *editCellTextlabel = (UILabel *)[cell.contentView viewWithTag:222]; 
editCellTextlabel.font = [UIFont boldSystemFontOfSize:18]; 
editCellTextlabel.text = contact.lastName; 
+0

셀을 채우기 위해 사용하는 코드를 게시하십시오. –

답변

1

당신은

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
UILabel *myLabel = [cell.contentView viewWithTag:222]; 

그러나 아마 가치 물어와 didSelectRowAtIndexPath:의 라벨에 대한 액세스 권한을 얻을 수 있습니다 왜 textLabel 속성 대신 하위 라벨을 추가하고 있습니까? 다음과 같이 속성이 당신의 didSelectRowAtIndexPath 방법에서 기본

+0

내 셀에 더 많은 것을 보여줄 때마다 문제가 발생했습니다. 그리고 나 초보자가되는 대신 셀 텍스트 속성 및 accessoryview 등을 활용하는 대신 레이블 및 버튼을 추가하지 않고 정렬 부분을 처리 할 수 ​​없었다 –

+0

viewWithTag를 사용하는 대신 UITableViewCell을 하위 클래스로 분류하고 속성을 통해 데이터를 노출합니다. 더 읽기 쉽습니다. – deanWombourne

+0

레이블이 두 개 이상인 경우 @deanWombourne에 동의하면 UITableViewCell의 하위 클래스를 만들고 모든 속성을 추가해야합니다. 셀 초기화 메소드에서 초기화하고 layoutSubviews에서 각 하위 뷰의 프레임을 설정할 수 있습니다. – wattson12

1

, 당신은 당신의있는 tableView의 배열에서 데이터를 얻을 수 있습니다

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    id objectForCell = [self.myArray objectAtIndex:indexPath.row]; 
    //do what you want with the above data. 
} 
2

에 의해 UITableViewCell에 노출되어 있기 때문에 당신이 그 프레임을 수정하는 등의 설정과 다음 태그에 대해 걱정할 필요가 없습니다 수 있습니다, 당신은 그것을 할 수 있습니다

UITableViewCell *cell = (UITableViewCell *)[self.tableViecellForRowAtIndexPath:indexPath];   
UILabel *textLabel = (UILabel *)[cell viewWithTag:222]; 

이제 textLabel.text를 사용하여 셀의 UILabel에서 데이터를 검색 할 수 있습니다.