2011-04-05 3 views
5

셀만있는 표보기가 필요합니다. 셀을 클릭하면 셀이 확장되어 더 많은 정보가 표시됩니다.표보기 셀 확장 가능 iOS

저는 이것에 대해 꽤 많은 주제를 보았습니다. 그러나 대부분이 애플 개발자 페이지의 Table View 애니메이션 및 제스처에 연결되어 있습니다. 그것은 다른 방식으로 그것을합니다. 그들은 헤더 섹션을 사용하지만, 레이아웃상의 이유로 확장 가능한 셀을 사용하고 싶습니다.

내가 셀에 셀이 확장 클릭하지만 셀의 정보가 동일하게 유지했을 때 나는 이미 주로

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

    if (isSearching && indexPath.row == selectedIndex) { 
     return 110; 
    } 
    else { 
     return rowHeight;  
    } 

와 함께 몇 가지를 시도했다. 또한 확장 될 때 셀의 heigth는 세부 정보의 텍스트 양과 관련되어야합니다.

Thnx!

+0

layoutSubviews를 구현했거나 셀에 자동 크기 조정 마스크를 사용 했습니까? – David

+0

아니요? 그 일을해야합니까? – peter

+0

예, 셀 내용의 크기가 자동으로 조정되지 않습니다. 높이를 변경하면 하위 뷰에 자동으로 영향을 미치지 않습니다. 자동 크기 조정 마스크가 설정되면 하위 뷰의 크기가 그에 따라 조정됩니다. autoresizingMask가 충분하지 않은 경우 layoutSubviews를 재정 의하여 프로그래밍 방식으로 하위 뷰의 크기를 조정할 수 있습니다. – David

답변

9

사용자 정의 셀을 사용하여이를 수행 할 수 있습니다. 일반 행과 확장 행의 두 가지 사용자 정의 셀을 작성하십시오. 사용자가 특정 셀을 터치하면 indexPath를 기록하고 tableView를 다시로드 할 수 있습니다. 다시로드하는 동안 방금 게시 한 코드를 사용하여 선택한 행의 높이를 변경할 수 있습니다 (선택한 셀의 높이를 높이면 됨). 이것은 세포를 확장시키는 효과를 줄 것입니다.

+0

didSelectRowAtIndexPath는 선택한 셀에 대해 호출됩니다. [tableView reloadData]가 완료되면 UITableViewDatSource 메소드에서 다시 참조 할 수있는 플래그를 설정할 수 있습니다. – Vin

+0

코드에서 어떤 사용자 정의 셀을 선택해야하는지 알 수 있습니까? didSelectRowAtIndexPath에서 이것을 선언합니까? 그리고 어느쪽으로? – peter

+0

cellForRowAtIndexPath가 tableView 재로드 후에 다시 호출 될 때 호출 된 셀의 플래그를 사용하여 확인할 수 있습니다. 새로운 사용자 정의 셀을 사용하여 셀을 다시 그릴 수 있습니다. – Vin