2012-10-09 4 views
1

현재 Android 앱의 iOS 버전을 개발 중입니다. 한 화면에서 일련의 행을 클릭하면 확장되어 정보를 제공합니다. 클릭하기 전에iOS : 확장 셀이있는 TableView

:

enter image description here


클릭 후 :

enter image description here

어떻게 아이폰 OS에서이 동작을 복제 할 수 있습니까? 나는 테이블 뷰를 사용할지 아니면 일반적인 UIView를 생성해야하는지 여부를 알지 못합니다. 나는 자동 레이아웃을 사용하고있다.

답변

1

특정 NSIndexPath에서 UITableVIewCell을 다시로드하고 셀의 새 높이를 계산할 수 있습니다.

확인 :

UITableView에서
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation 

UITableViewDelegate에서

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

.

0

UITableView의 각 그룹에 대한 헤더보기를 사용자 정의하면됩니다. viewforheaderinsection 메서드를 사용하여 UIButton을 반환합니다. 해당 버튼을 탭하면이 선택된 그룹에 UITableViewCells을 삽입해야합니다. 나는 지금 창문에 있기 때문에 당신에게 코드를 줄 수는 없지만, 매우 간단하다.

UPD : 애플이 샘플 코드를 보면 : 당신이 당신의 테이블 셀 확장을위한 터치 이벤트를받을 때 http://developer.apple.com/library/ios/#samplecode/TableViewUpdates/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010139

+0

내 업데이트 된 답변보기 –

0

이 테이블 컨트롤러

[self.tableView beginUpdates]; 
[self.tableView endUpdates]; 

애니메이션 블록 비록에서 다음 호출을 사용 startUpdates를 호출하면 테이블 뷰에서 셀 레이아웃을 새로 고치고 변경 내용을 애니메이션으로 만듭니다. - 이것은 당신의 테이블 뷰 대리인이 다시 조회 할 원인이됩니다 그래서 당신은 당신의 UITableViewDelegate에 다음과 같은 방법을 구현할 수 있도록 (보통은있는 UITableViewController 수 있도록이 설정됩니다) :

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

적절한를 반환합니다이 방법을 확인 터치 이벤트가 수신 된 후에 확장 된 셀 크기. 결과는 멋진 부드러운 셀 확장 애니메이션이 될 것입니다 :)

관련 문제