2010-07-15 3 views
5

tableview의 행에 여러 개의 열을 만드는 방법은 무엇입니까? 샘플을 보내 주시거나 제게 방향을 알려 주시면 감사하겠습니다!Tableview의 여러 열

답변

6

UITableView는 실제로 여러 열에 적합하지 않습니다. 그러나 사용자 정의 UITableCell 클래스를 작성하여 열을 시뮬레이트 할 수 있습니다. Interface Builder에서 각 열에 대한 요소를 추가하여 사용자 정의 셀을 작성하십시오. 컨트롤러에서 태그를 참조 할 수 있도록 각 요소에 태그를 지정하십시오.

는 컨트롤러에게 당신의 펜촉에서 셀을로드 할 출구를 보내기

@property(nonatomic,retain)IBOutlet UITableViewCell *myCell;

그런 다음, 테이블 뷰 대리인의 cellForRowAtIndexPath 방법, 태그에 의해 그 값을 할당합니다.

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *cellIdentifier = @"MyCell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    if (cell == nil) { 
    // load cell from nib to controller's IBOutlet 
    [[NSBundle mainBundle] loadNibNamed:@"MyTableCellView" owner:self options:nil]; 
    // assign IBOutlet to cell 
    cell = myCell; 
    self.myCell = nil; 
    } 

    id modelObject = [myModel objectAtIndex:[indexPath.row]]; 

    UILabel *label; 
    label = (UILabel *)[cell viewWithTag:1]; 
    label.text = [modelObject firstField]; 

    label = (UILabel *)[cell viewWithTag:2]; 
    label.text = [modelObject secondField]; 

    label = (UILabel *)[cell viewWithTag:3]; 
    label.text = [modelObject thirdField]; 

    return cell; 
} 
+0

귀중한 답장을 보내 주셔서 감사합니다. 하지만 헤더와 레코드가있는 행렬 테이블 뷰와 같은 DataGrid가 필요합니다. – sri

+0

어쩌면 내가 뭘 찾고 있는지 이해하지 못할 수도 있지만 쉽게이 접근법을 사용하여 Excel 테이블처럼 보이는 것을 만들 수 있습니다. 헤더의 섹션 헤더에보기를 추가 할 수 있습니다. 데이터로 채울 수있는 매트릭스처럼 보이는보기를 자동으로 만드는 쉬운 솔루션을 찾고 있다면 나는 아무것도 모릅니다. –

+0

나 자신을 위해 이것을 복제하고 싶습니다.이 사용자 정의 셀이 IB에 있어야하는 클래스 유형을 정교하게 설명 할 수 있습니까? 새로운 셀을 각 행에로드하여 콘센트에 매핑하려면 MyTableView NIB에 UITableViewCell에서 상속 받고 MyCell 콘센트가있는 사용자 정의 클래스의 테이블 뷰 셀이 포함되어 있습니까? 소유자의 사용 : 여기에있는 셀은로드 된 셀이 사실 UITableViewController 유형이며, 이는 이상하게 보입니다. –

0

여러 개의 UITableView를 나란히 사용할 수 있습니다. 사용자 정의 셀을 사용하면 괜찮아 보입니다. 따라서 DataGrid처럼 보일 때까지 변형 할 수 있습니다. ;-)

0

하나의 UITableViewCell에 두 개 이상의 셀이 포함 된 UIGridView을 만들었습니다. UIGridView의 소스 코드를 알 수 있습니다.

내 조언은 UIViewController에서 코딩하지 않는 것입니다. 외부 컨트롤을 빌드하고 UIViewController에서 사용하는 것이 훨씬 더 좋습니다.

또는 내 사용 만 가능합니다.