2012-07-15 3 views
4

스토리 보드에서 설계 한 여러 프로토 타입 셀이있는 테이블 뷰가 있지만 첫 번째 셀이 두 번째 셀프와 다를 수 있으므로 높이 문제가 있습니다. 등등 ... 저는 각 셀마다 서로 다른 식별자를 가지고 있습니다. 스토리 보드에서 설계했기 때문에 키가 높다는 것을 알고 있습니다. 나는 내 코드이있다, 그러나 키우면가 작동하지, 사람이 그것을 해결하는 방법을 알고 않습니다? 당신의 시간을다른 섹션 (스토리 보드)에서 다른 행 높이 설정

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

UITableViewCell *cell = [[UITableViewCell alloc]init]; 
switch (indexPath.section) 

{ 
    case 1: 

     cell = [tableView dequeueReusableCellWithIdentifier:@"cell1"]; 
     return 743.0f; 

     break; 

    case 2: 

     cell = [tableView dequeueReusableCellWithIdentifier:@"cell2"]; 
     return 300.0f; 



} 

}

감사합니다.

답변

7
당신이 그것을 위해 ... 당신이 방법을 재정의 할 것 설계되지 않았습니다 목적으로이 방법을 사용하려고하는 것 같습니다

:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    switch (indexPath.section) 
     case 1: 
      static NSString *CellIdentifier = @"cell1"; 
      break; 
     case 2: 
      static NSString *CellIdentifier = @"cell2"; 
      break; 

    UITableViewCell *cell = [tableView 
     dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 

    // Configure the cell... 
    return cell; 
} 

가 만 heightForRowAtIndexPath에서 행 높이를 변경을 :

-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

switch (indexPath.section) 

{ 
    case 1: 

     return 743.0f; 

     break; //technically never used 

    case 2: 

     return 300.0f; 



} 

체크 아웃이 튜토리얼 http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1의 좋은 자원

+1

감사합니다! Bandokal, 문제가 마침내 해결되었습니다. 나도 언급하지 않았다. 그러나 그것은 나에게 다른 문제 (해결 된 것을 안다!)를주고 있었다, 내가 편집 모드에 갈 때마다 (그리고 나는 여러 개의 그룹화 된 섹션을 가지고있다.) 다른 행 (작은 녹색 플러스 버튼을 누른다) 행의 내용이 엉망이되어 버렸습니다. 새로운 행 (첫 번째 섹션 743.0f의 복제본)이 만들어졌으며 두 번째 섹션의 맨 위에 서있었습니다. – Japa

+1

스택 오버플로 (SO)에 오신 것을 환영합니다. 반도 칼 (BandoKal)이 귀하의 질문에 대답 한 이후로, 귀하의 도움을 줄 수있는 크레딧을주기 위해 그의 대답 옆에있는 체크 표시를 클릭하십시오! 또한 평판이 10 포인트가되면 상향 화살표를 치면 도움이되는 답변을 모두 투표 할 수 있습니다. 위쪽 화살표는 명성을 높이기 위해 시간을 보냈던 사람에게도 제공됩니다. – lnafziger

관련 문제