2013-05-13 2 views

답변

7

가능합니다. 마지막으로 선택한 행을 유지하는 변수가 필요합니다. 예 : 들어

@property (nonatomic, assign) NSInteger selectedRow; 
... 그런 다음 업데이트

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.row == self.selectedRow) { 
     return 100.; 
    } 

    return 44.; 
} 

다음 방법 메소드를 구현 :

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

    if(self.selectedRow == indexPath.row) 
     self.selectedRow = -1; 
    else 
     self.selectedRow = indexPath.row; 

    //The magic that will call height for row and animate the change in the height 
    [tableView beginUpdates]; 
    [tableView endUpdates]; 
} 

참고을 : 당신의 self.selectedRow-1 값을 초기화한다 초기 기본값은 0입니다.

+0

여러 섹션이있는 테이블을 지원하려면'selectedRow'를'NSIndexPath'로 설정해야합니다. – jszumski

1

당신은 당신은 예 당신이 할 수있는 특정 indexpath

0
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.row == rowtochangeheight) { 
     return 60; 
    } 
    else 
    { 
     return 44; 
    } 


} 
+0

rowtochangeheight ??? – nitz19arg

+0

높이를 변경하려는 행과 관련이 있습니다. – iEinstein

0

에 대한 heightNSIndexPath에 대한 체크 표시를하고 반환 할 수 있습니다

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

행에 대한 높이를 설정 heightForRowAtIndexPath을 사용할 수 있습니다,하지만 당신은 필요 선택한 행의 인덱스 경로를 저장하려면 selectedRow 변수를 음수 값으로 초기화해야합니다.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    selectedRow = indexpath.row; 
    [tblView reloadData]; 
} 

- (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (indexPath.row == selectedRow) 
     return 150.0f; 

    return 30; 
} 
관련 문제