매우 간단한 질문 ...UITableView에서 현재 행의 높이를 변경할 수 있습니까?
UItableView에서 현재 행 (클릭 한 행) 만 높이를 변경할 수 있습니까?
참고 : 나머지 행의 크기에는 영향을주지 않습니다.
매우 간단한 질문 ...UITableView에서 현재 행의 높이를 변경할 수 있습니까?
UItableView에서 현재 행 (클릭 한 행) 만 높이를 변경할 수 있습니까?
참고 : 나머지 행의 크기에는 영향을주지 않습니다.
가능합니다. 마지막으로 선택한 행을 유지하는 변수가 필요합니다. 예 : 들어
@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
입니다.
당신은 당신은 예 당신이 할 수있는 특정 indexpath
에 대한 height
을 NSIndexPath
에 대한 체크 표시를하고 반환 할 수 있습니다
- (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;
}
여러 섹션이있는 테이블을 지원하려면'selectedRow'를'NSIndexPath'로 설정해야합니다. – jszumski